新手经常写这样的代码:
#include<iostream> #include<string> #include<vector> using namespace std; void main() { vector<string> a; a[0]="aaaaaa"; a[1]="xxxxxx"; cout<<a.size()<<endl; }
错误很明显,没有开辟空间就直接放东西了。可以用push_back() 或resize()来解决。
vector<string> s;
s.erase(s.end()-1);
上面的代码也会出现offset out of range.
因为s为空,s.end()-1指向的不是一个有效的迭代器。