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]访问第一个空指针吗?第](/uploads/image/z/11457662-14-2.jpg?t=vector+%2Ap1%3Dnew+vector%2810%29%3B+vector+%2Ap2%3Dnew+vector%5B10%5D%3B+%E8%AF%B7%E5%A4%A7%E7%A5%9E%E8%A7%A3%E9%87%8A%E8%BF%99%E4%B8%A4%E5%8F%A5%E5%88%86%E5%88%AB%E7%9A%84%E6%84%8F%E6%80%9D%2C%E5%A5%BD%E8%AE%A9%E6%88%91%E5%88%86%E6%B8%85%E6%A5%9A%E6%9C%89%E4%BB%80%E4%B9%88%E4%B8%8D%E5%90%8C.%E7%AC%AC%E4%B8%80%E4%B8%AA%E8%A1%A8%E8%BE%BE%E5%BC%8F%E5%BA%94%E8%AF%A5%E6%98%AF%E5%88%86%E9%85%8D%E5%8D%81%E4%B8%AAstring%E7%A9%BA%E9%97%B4%2Cp1%E6%8C%87%E5%90%9110%E4%B8%AA%E7%A9%BAstring%2C%E5%8F%AF%E4%BB%A5%E7%94%A8%2Ap1%5B0%5D%E8%AE%BF%E9%97%AE%E7%AC%AC%E4%B8%80%E4%B8%AA%E7%A9%BA%E6%8C%87%E9%92%88%E5%90%97%3F%E7%AC%AC)
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++整体上大多数情况也可以避免指针.