2016-10-29 57 views
2

首先,他们之间的主要区别是什么?比较unordered_map vs unordered_set

我唯一发现的是unordered_set没有运营商[]。 如何访问unordered_set中的元素,因为没有[]

哪个容器使用随机访问内存(或两者)?

哪一个在任何意义上更快或使用更少的内存?

回答

9

它们几乎完全相同。 unordered_set只包含密钥,没有值。没有从键到值的映射,所以不需要operator[]unordered_map将键映射到值。

您可以使用unordered_set中的各种find方法来查找内容。

1

你可以使用迭代器来访问元素。

unordered_set <string> u{ 
      "Dog", 
      "Cat", 
      "Rat", 
      "Parrot", 
      "bee" 
}; 

for(auto& s:u){ 
    cout << s << ' ';  
} 

unordered_set<string>::const_iterator point = u.find("bee");