• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c++遍历map的时候删除元素

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
1.#include <iostream>
1.#include <map>
2.using namespace std;
3.
4.
5.int main()
6.{
7.    map<int, int> test_map;
8.    test_map[1] = 1;
9.    test_map[2] = 2;
10.    test_map[3] = 3;
11.    test_map[4] = 4;
12.    
13.    for( std::map<int, int>::iterator iter = test_map.begin();
14.        iter != test_map.end(); ++ iter )
15.    {
16.        cout << iter->first << " " << iter->second << endl;
17.    }
18.    
19.    int count = 0;
20.    
21.    // delete the element
22.    for( std::map<int, int>::iterator iter = test_map.begin();
23.        iter != test_map.end(); )
24.    {
25.        std::map<int, int>::iterator it_back = iter;
26.        bool is_first_element = false;
27.        if(it_back != test_map.begin())
28.        it_back --;
29.        else
30.        is_first_element = true;
31.        
32.        // delete the element that matches the specific condition
33.        if( iter->first % 2 == 0)
34.        {
35.            test_map.erase(iter);
36.            
37.            if(is_first_element)
38.             iter = test_map.begin();
39.            else
40.                iter = ++ it_back;
41.        }else iter ++;      
42.        
43.        count ++;
44.    }
45.    
46.    cout << "use count:" << count << endl;
 
48.    cout << "after delete " << endl;
49.    
50.    for( std::map<int, int>::iterator iter = test_map.begin();
51.        iter != test_map.end(); ++ iter)
52.    {
53.        cout << iter->first << " " << iter->second << endl;
54.    }
55.    
56.    system("pause");
7.    return 0;
58.     
59.}

运行结果
1 1
2 2
3 3
4 4
use count:4
after delete
1 1
3 3

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C# 多线程详解 Part.01(UI 线程、子线程) - asdyzh发布时间:2022-07-13
下一篇:
【C】06-标准库概述发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap