• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > vector与map的erase()函数详细解析

vector与map的erase()函数详细解析

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了vector的erase函数,vector中erase函数,vector erase,vector erase用法,c vector erase等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

vector循环删除的时候,erase(it)会返回下一个迭代器的地址,保险的做法是赋值给it 即 it= erase(it)

这是vector的内部机制所造成的,所以对vector进行erase的时候特别注意迭代器是否会失效!

map则可以直接erase(it++);

vector和map都不能将it++写在for循环中,而在循环体内erase(it)!

    // map的完美删除
    map<int, int> m;
    m[1] = 1;
    m[2] = 2;
    m[3] = 4;
    m[4] = 3;
    m[5] = 5;
    m[6] = 6;
    cout <<"m size = "<<m.size() <<endl;
    map<int, int>::iterator it1;
    for(it1 = m.begin(); it1!=m.end();)
    {  
        if(it1->second % 2 == 0)
            m.erase(it1++);
        else
            it1++;
    }  
    cout <<"2的整数倍删除后应该剩下i3";
    cout <<"m size = "<<m.size() <<endl;

}
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 大家注意vector, list, set, map成员函数erase
  • vector与map的erase()函数详细解析

相关文章

  • 2017-05-28C语言对组文件处理的相关函数小结
  • 2017-05-28C语言实现堆排序的简单实例
  • 2017-05-28哈希表实验C语言版实现
  • 2017-05-28如何在程序中判断VS的版本(实现方法详解)
  • 2017-08-27UVa11402 Ahoy, Pirates!
  • 2017-05-28C语言运算符优先级列表(超详细)
  • 2017-05-28详解C++中的函数调用和下标以及成员访问运算符的重载
  • 2017-05-28C语言 if else 语句详细讲解
  • 2017-05-28内部排序之堆排序的实现详解
  • 2017-05-28C++中replace()函数使用方法汇总

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C语言双向链表实现根据使用频率安排元素位置的功能实例代码
    • 对比C语言中的setbuf()函数和setvbuf()函数的使用
    • C++类模板与模板类深入详解
    • c++基础语法:构造函数与析构函数
    • 新手小心:c语言中强符号与弱符号的使用
    • C语言编程入门之程序头文件的简要解析
    • C语言高效编程的几招小技巧
    • 基于条件变量的消息队列 说明介绍
    • C++中vector的用法实例解析
    • C++基于对话框的程序的框架实例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有