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;
}
指向一个栈上的vector变量,栈上的变量会因为{}范围的不同而被自动释放(所谓的局部变量)。
更多请参考博客:https://blog.csdn.net/sandalphon4869/article/details/98452007
vector的类型为指针类型时要注意指针所指向的元素有无发生变化,否则vector中的元素会改变
其他的没啥了,望采纳!谢谢