2016-10-29 3 views
2

Прежде всего, в чем основное отличие между ними?Сравнение unordered_map vs unordered_set

Единственное, что я нашел, это то, что unordered_set не имеет оператора []. Как получить доступ к элементу в unordered_set, так как нет []?

В каком контейнере используется произвольный доступ к памяти (или и то и другое)?

И кто из них быстрее в любом смысле или использует меньше памяти?

ответ

9

Они почти идентичны. unordered_set содержит только ключи и значения. Нет никакого отображения от ключа к значению, поэтому нет необходимости в operator[]. unordered_map отображает ключ к значению.

Вы можете использовать различные методы find в пределах unordered_set, чтобы найти предметы.

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"); 
Смежные вопросы