文章目录
- 代码
- 结果
这个时候不能从前往后删,因为会破坏後面的元素的索引值,比如如果第删除了第2个元素,第3个元素的索引就会变为第2个元素的索引,造成混乱,甚至引起程序崩溃。应该从後往前删。
代码
#include<iostream>
#include<vector>
#include<algorithm>int main()
{std::vector<int> test_vec{2,3,4,1,5,8};std::cout<<test_vec.size()<<std::endl;std::vector<int> eraseIndexs{5,2,4};std::sort(eraseIndexs.rbegin(),eraseIndexs.rend());for(const auto& idx : eraseIndexs){test_vec.erase(test_vec.begin()+idx);}std::cout<<test_vec.size()<<std::endl;for(const auto& item:test_vec){std::cout<<item<<" ";}std::cout<<std::endl;return 0;
}
结果
6
3
2 3 1