访问向量元素时索引超出范围的异常

时间:2017-08-09 17:51:29

标签: c++

browser

我想删除连续数字的所有重复。
该程序抛出“越界”错误。 有没有任何逻辑错误,或者你能建议一些更好的算法吗?

1 个答案:

答案 0 :(得分:2)

您正在访问越界,因为在删除元素后,您的容器现在比您迭代的次数短一个元素。

无论如何;如果你只使用标准库中已有的东西,你可以用两行解决你的问题:

auto last = std::unique(a.begin(), a.end());
a.erase(last, a.end()); 

另请参阅:http://en.cppreference.com/w/cpp/algorithm/unique