C++ Unordered_set 库 - 擦除


描述

它从 unordered_set 容器中删除单个元素或一系列元素。

宣言

以下是 std::unordered_set::erase 的声明。

C++11

iterator erase ( const_iterator position );

参数

  • 位置- 它指示单个元素的位置。

  • k - K 是要删除的元素的值。

  • args - 这些参数传递给构造函数。

返回值

它返回的成员类型迭代器是前向迭代器类型。

例外情况

如果任何元素比较对象抛出异常,则抛出异常。

请注意,无效参数会导致未定义的行为。

时间复杂度

恒定时间。

例子

以下示例显示了 std::unordered_set::erase 的用法。

#include <iostream>
#include <string>
#include <unordered_set>

int main () {
   std::unordered_set<std::string> myset =
      {"USA","Canada","France","UK","Japan","Germany","Italy"};

   myset.erase ( myset.begin() );                  
   myset.erase ( "France" );                       
   myset.erase ( myset.find("Japan"), myset.end() ); 

   std::cout << "myset contains:";
   for ( const std::string& x: myset ) std::cout << " " << x;
   std::cout << std::endl;

   return 0;
}

让我们编译并运行上面的程序,这将产生以下结果 -

myset contains: Canada UK Italy
无序集.htm