STL unordered_multiset插入元素

STL unordered_multiset插入元素教程

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

STL unordered_multiset插入元素详解

语法

//普通引用方式传参 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_multiset 容器添加元素成功时,该迭代器指向 unordered_multiset 容器新添加的元素,bool 类型的值为 true;

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

STL unordered_multiset插入元素详解

语法

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

说明

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

案例

unordered_multiset insert插入元素

使用 insert 给 unordered_multiset 插入元素

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

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

55_unordered_multiset插入元素.png

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

unordered_multiset insert插入元素

使用 insert 给 unordered_multiset 插入元素

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

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

56_unordered_multiset插入元素.png

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

STL unordered_multiset插入元素总结

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