有以下程序
#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进行编译