unordered map/multimap unorderd set/multiset。 容器中元素的顺序没有被定义,并且有可能会被改变。
每个元素通过Hash Function 计算一个值,根据这个值确定元素放在什么位置。如果Hash 函数设计的好的话,寻找一个元素只需要O(1)时间。如果Hash Function 设计的不好的话,寻找元素可能需要O(n)时间。
#include
#include
#include
#include
using namespace std;
int main()
{
unordered_sets = { "red","green","blue" };
auto it = s.find("green");//O(1)时间
if (it != s.end())//解引用之前进行检查
{
cout << *it << endl;
}
s.insert("yellow"); //O(1)
vector vec = { "purple","pink" };
s.insert(vec.begin(),vec.end());
cout << s.load_factor() << endl;// the ratio of number of element and number of bucket
cout << "" << endl;
string x = "red";
cout << x << "is in the bucket : " << s.bucket(x) << endl;
cout << "the total bucket "<< s.bucket_count()<
unordered 容器的特性:
1、任意位置的快速的查找,删除,插入
2、element key 不能被改变 ,因为改变后会改变hash table