📅  最后修改于: 2023-12-03 15:29:51.157000             🧑  作者: Mango
在C++ STL中,unordered_set是一个哈希表容器,它与set不同,不同的元素以哈希值来进行存储和访问。而emplace()函数则是该容器中用来插入元素的函数之一,它能够快速地将一个对象插入到unordered_set中,并返回一个指向该元素的迭代器或者一个nullptr。
template< class... Args >
std::pair<iterator,bool> emplace( Args&&... args );
#include <iostream>
#include <unordered_set>
int main() {
std::unordered_set<int> mySet;
mySet.emplace(1);
mySet.emplace(2);
mySet.emplace(3);
std::cout << "mySet contains:";
for (int x : mySet) {
std::cout << ' ' << x;
}
std::cout << '\n';
auto ret = mySet.emplace(2);
if (!ret.second) {
std::cout << "2 is already in the set (with a value of " << *ret.first << ")\n";
}
return 0;
}
输出结果:
mySet contains: 3 2 1
2 is already in the set (with a value of 2)