1.unordered_map
unordered_map不同于map的地方如它的前缀名一样,它是无序的,这是由于它的底层是由哈希表实现的。
1.1 unordered_map的使用
#include<iostream>
#include<unordered_map>
int main()
{
std::unordered_map<int,int> um;
//初始化列表插入 initializer list insert
um.insert({{1,2},{2,4}});
//拷贝构造
std::unordered_map<int,int> um2(um);
//移动构造&插入 move insert
um2.insert(std::make_pair<int,int>(3,6));
std::unordered_map<int,int> um3;
//赋值
um3 = {{4,8},{5,10}};
//范围插入 range insert
um2.insert(um3.begin(),um3.end());
//删除
um2.erase(1);
//迭代器遍历
for(auto it = um2.begin(); it != um2.begin(); it++){
std::cout << it->first << "---" << it->second << std::endl;
}
//访问
std::cout << um2[2] << std::endl;
return 0;
}
-------------------------------------------------------------
4---8
5---10
3---6
2---4
4
2. unordered_set
2.1 unordered_set的使用
#include<unordered_set>
#include<iostream>
int main()
{
std::unordered_set<int> us = {1,1,4,3};
std::unordered_set<int> us3 = {7,8};
//copy insert
std::unordered_set<int> us2(us);
//range insert
us2.insert(us3.begin(),us3.end());
//initializer list insert
us2.insert({9,10});
//erase
us2.erase(1);
//iterator
for(auto it = us2.begin(); it != us2.end(); it++){
std::cout << *it << std::endl;
}
return 0;
}