本帖记录使用C++ vector时的各种问题,不定期更新。
问题1
使用vector指针访问元素时,与数组指针的不同点。
1.1 vector指针
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int > *p = new vector<int >;
p->push_back(1);
cout << p[0] << endl; //编译错误,不能以此种方式访问元素
delete p;
}
此时只能用 迭代器 或者 (*p)[0] 访问,推荐采用迭代器访问元素,见下面的代码
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int > *p = new vector<int >;
p->push_back(1);
cout << (*p)[0] << endl; // (*p)[0] 访问元素
//迭代器访问元素方式
for (vector <int>:: iterator it = p->begin(); it != p->end(); ++it)
cout << *it << endl;
delete p;
}
1.2 数组指针访问元素
与vector指针不同,数组指针可以使用p[0]、p[1]等访问数组元素
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int a[] = {1,2};
int *p = &a[0];
cout << p[0] << " " << p[1] << endl;
}