Ta odpowiedź SO mówi, że mapa STL z wektorem dla klucza wektor może być używany jako klucz. Więc kiedy używamy wektora jako klucza. Jak to faktycznie działa, skoro klucz musi być unikalny, więc kiedy wstawimy inny wektor z tymi samymi elementami, czy map
sprawdzanie duplikatu elementu po elemencie lub nazwa wektora coś określi? Podobnie jak nazwa tablicy reprezentuje adres podstawowy. Tak więc tablica może być używana jako klucz, ponieważ adres podstawowy może być użyty jako klucz w tym przypadku, ale jaki jest klucz w przypadku wektora. Jak to działa wewnętrznie.
Ponieważ kiedy drukuję nazwę wektora, pojawia się błąd
vector<int> v;
cout<<v; //error
has operators == and <
jak to pomaga? moim pytaniem było sprawdzenie, czy zduplikowane elementy
std::vector
jako klucza std::map
. Płacisz za to, czego używasz . Można to zrobić i być może istnieją do tego pewne przypadki użycia, ale z pewnością możesz zmienić wybraną strukturę danych. Kontenery STL są zaprojektowane tak, aby były maksymalnie wszechstronne i użyteczne w dowolny sposób, w jaki użytkownik może chcieć z nich korzystać.
std::map
skopiuje zarówno klucz, jak i wartość do siebie. std::unordered_map
może przechowywać skrót klucza.