고유하지 않은 키 - 값 쌍을 저장할 솔루션이 필요합니다. 키 (공간 효율성)를 반복하고 싶지 않고 조회 속도에 집중하려고합니다 (새 데이터를 삽입하는 효율은 그다지 중요하지 않습니다). 나는 std :: multimap을 여기에서 사용할 것이다. 하지만 몇 가지 범위 기준을 충족시키는 키를 찾아야합니다.어떤 STL 구조를 사용해야합니까?
가장 복잡한 예 : 키는 문자열이며 값은 중요하지 않습니다. "Lol"로 시작하는 모든 값을 찾고 싶습니다. 또는 "bar"와 "foo"사이에있는 모든 값을 찾고 싶습니다.
멀티 맵으로 처리 할 수 있습니까? 두 번째 생각은 값의 벡터를 가리키는 정렬 된 벡터를 사용하는 것입니다. 다음과 같은 것 :
std::vector<std::string, std::vector<T>> sorted_vec;
그런 다음 검색 기준을 쉽게 충족 할 수 있습니다. 그러나 나는 조회의 수행에 정말로 관심이있다. 올바른 접근 방법입니까?
벡터의 정렬 된지도가 당신이 묘사하는 선상에있는 것처럼 보이지만 충분히 유용하다고 확신하지 못합니다. – WhozCraig
삽입이 중요하지 않다면, 후자가 rb-tree 기반이기 때문에''vector''가''map''보다 선호 될 것이라고 생각합니다. ''struct foo {}; 벡터;''OK 일 것입니다. –
gongzhitaao