vecto的下标操作不能添加元素
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
vector<int> ivec;
for (vector<int>::size_type ix = 0; ix != 10; ++ix)
ivec[ix] = ix; // disaster: ivec has no elements
for (vector<int>::size_type ix = 0; ix != 10; ++ix)
cout<<ivec[ix]<<endl;
return 0;
}
但是可以如下进行操作
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
vector<int> ivec; // empty vector
for (vector<int>::size_type ix = 0; ix != 10; ++ix)
ivec.push_back(ix); // disaster: ivec has no elements
for (vector<int>::size_type ix = 0; ix != 10; ++ix)
cout<<ivec[ix]<<endl;
return 0;
}
输出的结果:
总结:必须是已存在的元素才能用下标操作符进行索引。通过下标操作进行赋值时,不会添加任何元素。