std::map에서 삽입 순서 유지
std::map
효과적인 해결책 중 하나는 std::map과 std::Vector의 조합을 사용하는 것입니다. 지도는 효율적인 문자열 기반 조회를 보장하므로 정렬 작업을 수행하기 전에 지도 내용을 std::Vector에 복사할 수 있습니다. 사용자 정의 펑터를 사용하여 삽입 순서에 따른 정렬 논리를 정의할 수 있습니다.
또는 Boost 라이브러리는 Boost::multi_index를 사용하여 강력한 솔루션을 제공합니다. 이를 통해 단일 컨테이너의 다중 인덱싱이 가능합니다. 귀하의 경우 다음 구조를 구현할 수 있습니다.
struct value_t { std::string s; int i; }; struct string_tag {}; typedef multi_index_container< value_t, indexed_by< random_access<>, // index representing insertion order hashed_unique<tag<string_tag>, member<value_t, string, &value_t::s>> > > values_t;
여기서, random_access 인덱스는 삽입 순서를 유지하고 hashed_unique 인덱스는 효율적인 조회를 위해 고유한 문자열 식별자를 보장합니다. 이 접근 방식은 효율적인 조회와 게재 신청서 보존을 모두 제공합니다.
위 내용은 효율적인 조회를 유지하면서 `std::map`에서 삽입 순서를 유지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!