我的编译器抱怨。
#include <iostream>
#include <vector>
using namespace std;
int main(){
vector<string> vec[2];
vec[0].push_back("test1");
vec[0].push_back("test2");
cout << vec[0][0] << endl;
vec[0].erase(vec.begin());
cout << vec[0][1] << endl;
}
我打电话给擦除有什么问题?
答案 0 :(得分:4)
vec
是一个vector<string>
的数组。我相信你的意思是vec[0].begin()
:
vec[0].erase(vec[0].begin());
答案 1 :(得分:0)
vec[0].erase(vec[0].begin());
cout << vec[0][1] << endl;
擦除第一个元素后,只剩下一个元素。这一个元素位于0位置,这意味着索引1是偏离边界 - &gt;未定义的行为。