Различие между Python dict и tr1:: unordered_map в C++

Мне связали вопрос с пониманием того, как работают словари Python.

Я не забываю читать где-нибудь, строки в Python неизменны, чтобы позволить хешировать, и это - та же причина, почему нельзя непосредственно использовать списки в качестве ключей, т.е. списки изменяемы (путем поддержки .append), и следовательно они не могут использоваться в качестве ключей словаря.

Я хотел знать, как делает реализацию unordered_map в дескрипторах C++ эти случаи. (так как строки в C++ изменяемы),

9
задан 28 February 2010 в 20:01
поделиться

1 ответ

Ключи во всех контейнерах карты / набора C ++ являются константными и, следовательно, неизменяемыми (после добавления в контейнер).

Обратите внимание, что контейнеры C ++ не относятся к строковым ключам, вы можете использовать любые объекты, но постоянство предотвратит модификации после того, как ключ будет скопирован в контейнер.

7
ответ дан 4 December 2019 в 23:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: