unordered_set构造函数
unordered_set<int> set1; //创建空set
unordered_set<int> set2(set1); //拷贝构造
unordered_set<int> set3(set1.begin(), set1.end()); //迭代器构造
unordered_set<int> set4(arr,arr+5); //数组构造
unordered_set<int> set5(move(set2)); //移动构造
unordered_set<int> set6 {1,2,10,10};//使用initializer_list初始化
unordered_set基本操作
unordered_set::insert //增
unordered_set::erase //删
unordered_set::find //查
其中insert()函数的函数原型为:
unordered_set<Key, Hash, KeyEqual, Allocator>::insert
它可以插入作为参数传入的单个元素。在这种情况下,它会返回一个 pair 对象:
pair<iterator, bool>
由于unordered_set底层实现为hash,故set内不会出现重复元素。根据这个性质,结合insert函数,可以验证插入元素是否重复。
#include <iostream>
#include <unordered_set>
using namespace std;
int main () {
unordered_set<int> myset;
pair<unordered_set<int>::iterator, bool> ret;
myset.insert(1);
ret = myset.insert(1);
if (!ret.second) {
cout << "error" << endl;
} else {
cout << "successful" << endl;
}
}
由于元素重复插入,此段程序输出为“error”。