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

来源:学生作业帮助网 编辑:作业帮 时间:2024/08/29 08:22:56
vector *p1=new vector(10); vector *p2=new vector[10]; 请大神解释这两句分别的意思,好让我分清楚有什么不同.第一个表达式应该是分配十个string空间,p1指向10个空string,可以用*p1[0]访问第一个空指针吗?第
xSMsP+,f  tB36!Ҥ Ji)j15!|w_^V  KǬ^s޽/%mz=XOOB`Pe@A{= v(Kiü9g3 UoùL/3x~K{2FXZ n~~mDb9y~9$q؉vQKgLM/lZ=sq#Gt/ЋO<f{띀cDjQCb%=!pk#|ңj~؋o /2}9a

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++整体上大多数情况也可以避免指针.