#include <iostream>
#include <vector>
#include <map>
#include <list>
using namespace std;
template<typename T>
void show(T& data)
{
for (auto i = data.begin(); i != data.end(); i++)
cout<<*i<<endl;
}
template<typename T>
void showMap(T& data)
{
for (auto i = data.begin(); i != data.end(); i++)
cout<<i->first<<" "<<i->second<<endl;
}
void testVector()
{
vector<int> _vector = { 1, 3, 5, 7, 9, 0, 2, 4, 6, 8 };
for (auto _i = _vector.begin(); _i != _vector.end();)
{
if (*_i == 6)
_i = _vector.erase(_i);
else
_i++;
}
show(_vector);
}
void testList()
{
list<int> _list = {5, 7, 9, 10, 15};
for (auto _i = _list.begin(); _i != _list.end();)
{
if (*_i == 9)
//_i = _list.erase(_i); //方式1
_list.erase(_i++); //方式2
else
_i++;
}
show(_list);
}
void testMap()
{
map<string, int> _map = {{"aaa", 4}, {"bbb", 5}, {"ccc", 6}, {"ddd", 7}};
for (auto _i = _map.begin(); _i != _map.end();)
{
if (_i->second == 7)
//_map.erase(_i++); //方式1
_i = _map.erase(_i); //方式2
else
_i++;
}
showMap(_map);
}
int main() {
testVector(); // 测试vector容器
testList(); // 测试list容器
testMap(); // 测试map容器
return 0;
}
C++ STL 迭代器删除指定元素
最新推荐文章于 2024-02-16 10:36:16 发布