이 SO 답변에 따르면 벡터에 대한 벡터가있는 STL 맵 벡터를 키로 사용할 수 있습니다. 벡터를 키로 사용할 때 키가 고유해야하기 때문에 실제로 어떻게 작동합니까? 동일한 요소를 가진 다른 벡터를 삽입 할 때 map
요소별로 요소를 중복 검사하거나 벡터 이름이 무언가를 지정합니까? 배열의 이름은 기본 주소를 나타냅니다. 따라서 기본 주소는 키로 사용될 수 있지만 벡터의 경우 키는 무엇인지 때문에 배열은 키로 사용할 수 있습니다. 내부적으로 어떻게 작동합니까?
벡터의 이름을 인쇄하면 오류가 발생하기 때문에
vector<int> v;
cout<<v; //error
has operators == and <
어떻게 도움이 되나요? 내 질문은 중복 요소를 확인하여 요소별로 벡터 키 요소를 비교하는지 확인하는 것입니다
std::vector
키로 사용하도록 강요하지 않을 것입니다 std::map
. 사용한만큼 지불합니다 . 그것은 가능할 수도 있고 아마도 유스 케이스가있을 수도 있지만 가장 확실한 것은 선택한 데이터 구조를 변경할 수 있습니다. STL 컨테이너는 사용자가 원하는 방식으로 최대한 활용할 수 있도록 설계되었습니다.
std::map
키와 값을 모두 자체에 복사합니다. std::unordered_map
키의 해시를 저장할 수 있습니다.