Câu trả lời SO này nói rằng Bản đồ STL với Vector cho Khóa , vectơ có thể được sử dụng làm khóa. Vì vậy, khi chúng ta sử dụng một vector làm chìa khóa. Làm thế nào mà nó thực sự hoạt động vì khóa cần phải là duy nhất vì vậy khi chúng ta chèn một vectơ khác có cùng các phần tử, việc map
kiểm tra phần tử trùng lặp theo phần tử hay tên của vectơ sẽ chỉ định điều gì? Giống như tên của mảng đại diện cho địa chỉ cơ sở. Vì vậy, một mảng có thể được sử dụng làm khóa vì địa chỉ cơ sở có thể được sử dụng làm khóa trong trường hợp này nhưng khóa là gì trong trường hợp của vectơ. Làm thế nào nó hoạt động nội bộ.
Bởi vì khi tôi in tên của vectơ, tôi gặp lỗi
vector<int> v;
cout<<v; //error
has operators == and <
Làm thế nào để giúp đỡ? Câu hỏi của tôi là kiểm tra các phần tử trùng lặp sẽ ánh xạ so sánh phần tử khóa vectơ theo phần tử
std::vector
làm chìa khóa cho std::map
. Bạn trả tiền cho những gì bạn sử dụng . Nó có thể được thực hiện và có thể có một số trường hợp sử dụng cho điều đó, nhưng chắc chắn nhất là bạn có thể thay đổi cấu trúc dữ liệu của mình. Các thùng chứa STL được thiết kế linh hoạt tối đa và có thể sử dụng theo bất kỳ cách nào người dùng có thể muốn sử dụng chúng.
std::map
sẽ sao chép cả khóa và giá trị vào chính nó. std::unordered_map
có thể lưu trữ băm của khóa.