vector *p1=new vector(10); vector *p2=new vector[10]; 请大神解释这两句分别的意思,好让我分清楚有什么不同.第一个表达式应该是分配十个string空间,p1指向10个空string,可以用*p1[0]访问第一个空指针吗?第

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/07 06:08:45
vector *p1=new vector(10); vector *p2=new vector[10]; 请大神解释这两句分别的意思,好让我分清楚有什么不同.第一个表达式应该是分配十个string空间,p1指向10个空string,可以用*p1[0]访问第一个空指针吗?第

vector *p1=new vector(10); vector *p2=new vector[10]; 请大神解释这两句分别的意思,好让我分清楚有什么不同.第一个表达式应该是分配十个string空间,p1指向10个空string,可以用*p1[0]访问第一个空指针吗?第
vector *p1=new vector(10); vector *p2=new vector[10];
请大神解释这两句分别的意思,好让我分清楚有什么不同.第一个表达式应该是分配十个string空间,p1指向10个空string,可以用*p1[0]访问第一个空指针吗?第二个就不是很懂了,

vector *p1=new vector(10); vector *p2=new vector[10]; 请大神解释这两句分别的意思,好让我分清楚有什么不同.第一个表达式应该是分配十个string空间,p1指向10个空string,可以用*p1[0]访问第一个空指针吗?第
vector *p1=new vector(10);
产生并赋予p1:1个vector对象和对应的空间,该vector有10个string空间;
vector *p2=new vector[10];
产生并赋予p2:10个vector对象和对应的空间,每个vector有默认个string空间;
======
另外,C++的STL容器,包括vector和string,本身的空间都是在堆中,本身就是一种类似指针.
不适合也没必要再在外面vector *p1;再用一次指针,没有实际功用而且容易造成混淆.
C++的发明人推荐这些工具就是要避免用指针.C++整体上大多数情况也可以避免指针.