zoukankan      html  css  js  c++  java
  • C++ 容器插入和删除

    插入方法:

    1.  vector、list的insert用法:

            (1)iterator insert( iterator loc,  const TYPE &val )

            (2)void insert( iterator loc,  size_type num,  const TYPE &val )

            (3)void insert( iterator loc,  input_iterator start,  input_iterator end )

    2.  map的insert用法:

          若map<string,int> m,插入方法如下:

            (1)m.insert(map<string,int>::value_type("hello",5));

            (2)m.insert(make_pair("hello",5));

       insert的返回类型为:

                  pair<   map<string,int>::iterator,  bool   > 

                        pair的first参数是:  插入位置的迭代器(map<string,int>::iterator)

                        pair的second参数:插入是否成功的标志(bool)

     

    删除方法:

    1. 删除元素element,则:

        (1)vector删除元素的用法:

                 vi.erase(  remove(vi.begin(), vi.end(), element),  vi.end()  );        

        (2)list删除元素的用法:

                 li.remove(element);      

        (3)map删除元素的用法:

                 m.erase(element);      

    2.删除判断函数 bool judge(int) 返回真的元素,则:

        (1)vector删除元素的用法:

                 vi.erase(  remove_if(vi.begin(), vi.end(), judge), vi.end()  );        

        (2)list删除元素的用法:

                 li.remove_if(judge);      

        (3)map删除元素的用法:

             for(auto itor=m.begin(); itor!=m.end(); )
                 {
                        /*注意:这里有三种方法避免erase(itor)后itor失效的问题*/
                        if( judge(itor->second) )       //当erase(itor)后,itor会失效,所以此处要用erase(itor++)
                        {
                              /*方法一*/
                               m.erase(itor++);           //参数处理优先于函数调用
                              /*方法二*/
                               auto itortmp = itor;       //模拟了方法一的过程
                               ++itor;
                               m.erase(itortmp);
                              /*方法三*/
                               itor = m.erase(itor);      //erase函数释放itor后,会返回指向下一个元素的指针来获取最新的itor
                        }
                        else
                            ++itor;
                 }
     
  • 相关阅读:
    Docker 常用命令
    SpringMVC Controller 返回值几种类型
    SSM框架整合(IntelliJ IDEA + maven + Spring + SpringMVC + MyBatis)
    SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
    springmvc 自定义拦截器实现未登录用户的拦截
    使用idea搭建SSM框架
    详解intellij idea搭建SSM框架(spring+maven+mybatis+mysql+junit)(下)
    IntelliJ IDEA maven项目new里没有package
    ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: NO) ERROR 1045 (28000): Access denied for user 'ODBC'@'localhost' (using password: YES)
    MySql 5.7密码查看或修改
  • 原文地址:https://www.cnblogs.com/ladawn/p/8185535.html
Copyright © 2011-2022 走看看