multimap::emplace
在适当位置插入构建元素 (不执行复制或移动操作) 。
template<class... Args>
iterator emplace(
Args&&... args);
参数
参数 |
说明 |
args |
传递的参数,用于创建一个待插入多重映射的元素 |
返回值
指向新插入元素的迭代器。
备注
此函数的容器元素的引用是无效的,但是,它可能使容器内的所有迭代器都无效。
如果在插入时异常被抛出,容器不会更改并且异常被再抛出。
value_type 一个元素是一对, 使元素值为一个有序对,第一个组件与键值相同和第二组件与元素数据值相同。
示例
// multimap_emplace.cpp
// compile with: /EHsc
#include <map>
#include <string>
#include <iostream>
using namespace std;
template <typename M> void print(const M& m) {
cout << m.size() << " elements: " << endl;
for (const auto& p : m) {
cout << "(" << p.first << "," << p.second << ") ";
}
cout << endl;
}
int main()
{
multimap<string, string> m1;
m1.emplace("Anna", "Accounting");
m1.emplace("Bob", "Accounting");
m1.emplace("Carmine", "Engineering");
cout << "multimap modified, now contains ";
print(m1);
cout << endl;
m1.emplace("Bob", "Engineering");
cout << "multimap modified, now contains ";
print(m1);
cout << endl;
}
Output
multimap modified, now contains 3 elements:
(Anna,Accounting) (Bob,Accounting) (Carmine,Engineering)
multimap modified, now contains 4 elements:
(Anna,Accounting) (Bob,Accounting) (Bob,Engineering) (Carmine,Engineering)
要求
标头: <map>
命名空间: std