c++ vector subscript of range

  新手经常写这样的代码:

#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指向的不是一个有效的迭代器。

原文地址:https://www.cnblogs.com/youxin/p/2550538.html