zoukankan      html  css  js  c++  java
  • 【翻译】std::list::remove

    公有成员函数

    std::list::remove


    void remove(const value_type& val);

      删除与给定值相等的元素

      从容器中删除所有与 val 值相等的元素。list::remove 函数删除给定元素时,会调用被删除对象的析构函数,并且缩小相应大小的容器 size 。

      list::remove 与另一个成员函数 list::erase 不同,后者使用迭代器来确定需要被删除的元素;前者通过数值的方式来确定被删除元素。

      有一个与 list::remove 相似的函数—— list::remove_if ——它允许使用一个“仿函数”来确定被删除元素。

    参数

      val 

      被删除元素的值。

      成员类型 value_type 是容器中元素的类型,作为一个模板参数 T 的别名,被定义在 list 中。

    返回值

      没有返回值

    用例

    // remove from list
    #include <iostream>
    #include <list>
    
    int main ()
    {
      int myints[]= {17,89,7,14};
      std::list<int> mylist (myints,myints+4);
    
      mylist.remove(89);
    
      std::cout << "mylist contains:";
      for (std::list<int>::iterator it=mylist.begin(); it!=mylist.end(); ++it)
        std::cout << ' ' << *it;
      std::cout << '
    ';
    
      return 0;
    }

      输出 : 

      mylist contains: 17 7 14

    复杂度

      线性复杂度,取决于容器 size 。 O(n)

    迭代器的有效性

      指向已被函数移除的元素的迭代器、指针和引用是非法的。不影响指向其他元素的指针、迭代器和引用。

    数据种类

      容器是经过改进的

      被删除的元素会被修改。尽管遍历容器是不安全的,但并发访问或者修改其他元素是安全的。

    异常安全

      如果比较两个元素不会抛出异常,那么 list::remove 将不会抛出异常。(可以确保不会抛出异常)

      否则,如果一个异常被抛出,容器会留下一个有效状态。(基本能够保证)

    参阅

    list::remove_if 移除满足条件的元素
    list::erase 擦除元素
    list::unique 移除重复元素
    list::pop_back 删除最靠后的元素
    list::pop_front 删除最靠前的元素

    感谢

      Mengmeng Zhang

    原文地址:http://www.cplusplus.com/reference/list/list/remove/

  • 相关阅读:
    MyEclipse:详细使用教程
    JDK安装与配置详细图文教程
    windows下python3.6版本安装pygame
    windows下如何下载并安装Python
    python的 del 函数是删对象还是删引用
    python strip()函数的用法
    python的垃圾回收机制
    python中的sort方法
    python中del函数的垃圾回收
    两个数交换
  • 原文地址:https://www.cnblogs.com/fengyubo/p/5052400.html
Copyright © 2011-2022 走看看