std::map을 사용하여 삽입된 키-값 쌍을 순서대로 저장
std::map은 키를 저장하는 컨테이너 데이터 구조입니다. -키를 기준으로 정렬된 순서로 된 값 쌍입니다. 그러나 쌍의 삽입 순서를 유지해야 하는 경우 지도는 더 이상 이 기능을 제공하지 않습니다.
대체 솔루션
코드 예:
고려하세요. Boost::multi_index 접근 방식을 사용하는 이 코드 조각:
#include <boost/multi_index_container.hpp> #include <boost/multi_index/member.hpp> #include <boost/multi_index/random_access.hpp> #include <boost/multi_index/hashed_unique.hpp> struct value_t { std::string s; int i; }; struct string_tag {}; typedef boost::multi_index_container< value_t, boost::multi_index::indexed_by< boost::multi_index::random_access<>, // Insertion order index boost::multi_index::hashed_unique<boost::multi_index::tag<string_tag>, boost::multi_index::member<value_t, std::string, &value_t::s>> > > values_t;
이 예에서 value_t 컨테이너는 두 개의 인덱스, 즉 삽입 순서 인덱스와 s 멤버의 해시된 고유 인덱스를 사용합니다. 이를 통해 순서가 지정된 반복과 s 키를 통한 효율적인 조회가 모두 가능합니다.
위 내용은 C에 키-값 쌍을 저장할 때 삽입 순서를 유지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!