STL unordered_set插入元素

STL unordered_set插入元素教程

如果我们需要向 STL 中的 unordered_set 容器插入元素有两种方法,即,使用 insert 方法插入元素和使用 emplace 方法。

STL unordered_set插入元素详解

语法

//普通引用方式传参 pair<iterator,bool> insert (const value_type& val); //右值引用方式传参 pair<iterator,bool> insert (value_type&& val);

说明

其中,val 表示要添加的新元素,该方法的返回值为 pair 类型。以上 2 种格式的区别仅在于传递参数的方式不同,即第一种采用普通引用的方式传参,而第二种采用右值引用的方式传参。右值引用为 C++ 11 新添加的一种引用方式。

以上 2 种语法格式的 insert() 方法,返回的都是 pair 类型的值,其包含 2 个数据,一个迭代器和一个 bool 值:当向 unordered_set 容器添加元素成功时,该迭代器指向 unordered_set 容器新添加的元素,bool 类型的值为 true;

如果添加失败,即证明原 unordered_set 容器中已存有相同的元素,此时返回的迭代器就指向容器中相同的此元素,同时 bool 类型的值为 false。

STL unordered_set插入元素详解

语法

//以普通引用的方式传递 val 值 iterator insert (const_iterator position, const value_type& val); //以右值引用的方式传递 val 值 iterator insert (const_iterator position, value_type&& val);

说明

以上 2 种语法格式中,insert() 函数的返回值为迭代器:当向 unordered_set 容器添加元素成功时,该迭代器指向容器中新添加的元素;当添加失败时,证明原 unordered_set 容器中已有相同的元素,该迭代器就指向 unordered_set 容器中相同的这个元素。

案例

unordered_set insert插入元素

使用 insert 给 unordered_set 插入元素

#include <iostream> #include <unordered_set> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; std::unordered_set<string> myunordered_set; myunordered_set.insert("HaiCoder"); myunordered_set.insert("www.haicoder.net"); myunordered_set.insert("haicoder.net"); for(auto iter = myunordered_set.begin(); iter != myunordered_set.end(); ++iter) { cout << *iter << endl; } return 0; }

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

41_unordered_set插入元素.png

我们看到,我们使用了 insert 将元素插入到了 unordered_set 中。

unordered_set insert插入元素

使用 insert 给 unordered_set 插入元素

#include <iostream> #include <unordered_set> using namespace std; int main() { cout << "嗨客网(www.haicoder.net)\n" << endl; std::unordered_set<string> myunordered_set; myunordered_set.insert("HaiCoder"); myunordered_set.insert(myunordered_set.begin(), "www.haicoder.net"); myunordered_set.insert(myunordered_set.end(), "haicoder.net"); for(auto iter = myunordered_set.begin(); iter != myunordered_set.end(); ++iter) { cout << *iter << endl; } return 0; }

编译后,我们直接运行生成的二进制文件 a.out,如下图所示:

42_unordered_set插入元素.png

我们看到,我们使用了 insert 和迭代器将元素插入到了 unordered_set 中。

STL unordered_set插入元素总结

如果我们需要向 STL 中的 unordered_set 容器插入元素有两种方法,即,使用 insert 方法插入元素和使用 emplace 方法。