有以下程序
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
v[0] = 1;
return 0;
}
运行会出现内存非法操作的错误。症结在于“v[0] = 1”一句。
一开始vector为空时,不能对其进行下标赋值。而要用push_back().
以下程序
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v;
v.push_back(1);
v[3] = 2;
cout << v[0] << " " << v[3] << endl;
return 0;
}
输出:1 2
注:以上程序在winXP系统中,使用GNU GCC compiler进行编译
本文探讨了C++中vector容器的安全使用方法。通过两个示例对比展示了如何避免因直接对空vector使用下标引发的非法内存访问错误,并强调了使用push_back方法的重要性。
2912

被折叠的 条评论
为什么被折叠?



