C++에서 열거 형에 대한 간단한 양방향 검색 기능을 만들려고합니다. 나는 편도 조회가 ... 잘enum에 대한 boost :: bimap
enum MyEnum
{
One,
Two,
Three
};
const boost::unordered_map<MyEnum,std::string> MyEnumMap = map_list_of
(One, "One")
(Two, "Two")
(Three, "Three");
작업 후 작동
MyEnumMap.at(One)
를 통해 모습을하고 있지만 그것은 단지 키를 기반으로 검색이 가능하게 해줍니다. 부스트 : bimap과 같은 양방향 검색 컨테이너를 사용하여 키뿐만 아니라 값에 따라 쉽게 역순으로 조회 할 수 있습니다. map_list_of가 boost :: bimap과 호환되는 것처럼 보이지 않습니다.
우선 map_list_of를 boost :: bimap과 함께 사용해야합니까, 아니면 다른 유형이 필요합니까?
지도는 모두 기본 (열거 형, 문자열) 유형입니다.
둘째, 위와 같이 간단한 방법으로지도를 const로 정의 할 수있는 방법이 있습니까? 너무 많은 추가 typedefs 및 등지고없이 가능한 한 업데이트하고 유지하기가 쉽도록하기 위해 노력하고있어. 귀하의 통찰력은 높이 평가됩니다.
열거자를 문자열로 매핑하는 좋은 방법에 관심이 있다면 boost_enum (부스트 볼트)을 활용할 수 있습니다. 이 스레드를보십시오 : http://stackoverflow.com/questions/217549/which-typesafe-enum-in-c-are-you-using –