Bu SO cevapları Anahtar için Vector ile STL Haritasının vektörün anahtar olarak kullanılabileceğini söylüyor. Yani bir vektörü anahtar olarak kullandığımızda. Anahtarın benzersiz olması gerektiğinden, bu gerçekten nasıl çalışır, bu yüzden aynı öğelerle başka bir vektör eklediğimizde, map
öğeye göre yinelenen öğe olup olmadığını kontrol edecek veya vektörün adı bir şey belirleyecek mi? Dizinin adı temel adresi temsil eder. Bu nedenle, bir dizi anahtar adres olarak kullanılabilir çünkü taban adresi bu durumda bir anahtar olarak kullanılabilir, ancak bir vektör durumunda anahtar nedir. Dahili olarak nasıl çalışır?
Çünkü vektörün adını yazdırdığımda bir hata alıyorum
vector<int> v;
cout<<v; //error
has operators == and <
bu nasıl yardımcı olur? benim sorum yinelenen öğeleri vektör anahtar öğesi öğeye göre karşılaştırmak kontrol etmek oldu
std::vector
anahtar olarak kullanmaya zorlamayacak std::map
. Kullandığınız kadar ödersiniz . Bu yapılabilir ve belki bunun için bazı kullanım durumları vardır, ancak kesinlikle seçtiğiniz veri yapınızı değiştirebilirsiniz. STL kapları, maksimum derecede çok yönlü olacak ve kullanıcının bunları kullanmak isteyebileceği her şekilde kullanılabilecek şekilde tasarlanmıştır.
std::map
hem anahtarı hem de değeri kendi içine kopyalar. std::unordered_map
anahtar karmasını saklayabilir.