问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果
vector定义成指针有什么坏处,遍历会有影响吗
有什么需要注意的地方?
vector定义成指针有什么坏处,遍历会有影响吗
有什么需要注意的地方?
1、vector定义成指针类型需要new vector
2、vector定义成指针类型则不能使用下标访问元素了
3、需要注意vector中的元素,如果vector定义成指针,里面的元素也是指针,需要注意push的类型
4、遍历时只能通过迭代器或者v->at(i);去遍历
5、和普通指针一样需要释放
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> *v = new vector<int>;
v->push_back(1);
v->push_back(2);
v->push_back(3);
auto ptr = v->begin();
cout<<endl;
for(;ptr!=v->end();ptr++)
cout<<*ptr<<endl;
for(int i=0;i<v->size();i++)
cout<<v->at(i)<<endl;
vector<int*> *vp = new vector<int*>;
int* a = new int(1);
int* b = new int(2);
int* c = new int(3);
vp->push_back(a);
vp->push_back(b);
vp->push_back(c);
cout<<endl;
auto ptrv = vp->begin();
for(;ptrv!=vp->end();ptrv++)
cout<<*(*ptrv)<<endl;
for(int i=0;i<vp->size();i++)
cout<<*(vp->at(i))<<endl;
delete v;
delete vp;
return 0;
}