C++ Map 库 - emplace() 函数
描述
C++ 函数 std::map::emplace() 通过插入新元素来扩展容器。
仅当 key 不存在时才进行插入。
声明
以下是 std::map::emplace() 函数形式 std::map 头的声明。
C++11
template <class... Args> pair<iterator,bool> emplace (Args&&... args);
参数
args − 参数转发给元素的构造函数。
返回值
返回一个由 bool 组成的对来指示插入是否发生,并返回一个指向新插入元素的迭代器。
异常
如果任何操作抛出异常,则此函数无效。
时间复杂度
Logarithmic i.e. log(n)
示例
以下示例显示了 std::map::emplace() 函数的用法。
#include <iostream> #include <map> using namespace std; int main(void) { /* Initializer_list constructor */ map<char, int> m; m.emplace('a', 1); m.emplace('b', 2); m.emplace('c', 3); m.emplace('d', 4); m.emplace('e', 5); cout << "Map contains following elements in reverse order" << endl; for (auto it = m.begin(); it != m.end(); ++it) cout << it->first << " = " << it->second << endl; return 0; }
让我们编译并运行上面的程序,这将产生以下结果 −
Map contains following elements in reverse order a = 1 b = 2 c = 3 d = 4 e = 5