【翻譯】std::list::remove - C++ Reference


公有成員函數

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 << '\n';

  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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM