2014-02-09 2 views
2

부스트 bimap에 대한 부스트의 연관 속성 맵 인터페이스를 구현할 수 없습니다.boost :: associative 속성 맵을 boost :: BIMAP 인터페이스로 사용합니다.

다음과 같이 bimap을 가지고 있는데, boost :: associative 속성 맵을 정의하려고합니다. 내가 넣어 사용하고 내 bimap을위한 도우미 기능을 얻으려면 .. 코드는 다음과 같다 :

typedef boost::bimaps::bimap< vertex_descriptor_t, size_t >  vd_idx_bimap_t; 
typedef boost::associative_property_map<vd_idx_bimap_t>   asso_vd_idx_bimap_t; 

// define bimap 
vd_idx_bimap_t  my_bimap; 
asso_vd_idx_bimap_t my_asso_bimap(my_bimap); 

내가

error: no type named âsecond_typeâ in âboost::bimaps::container_adaptor::container_adaptor<boost::multi_index::detail::ordered_index<boost::m.... goes on long list. 

내가 아는 컴파일 오류가 발생, bimaps 속성 맵을 통해 지원됩니다 . 설명서는 here을 참조하십시오. 그냥 연관 속성 맵을 사용하는 것이 궁금 .. 내 associative 속성 맵에 대한 왼쪽 또는 오른쪽 bimap을 정의 할 수 있다면 괜찮을 수도 있습니다. 제발 제안 해주세요.

+1

코드 SSCCE 다음에 확인하시기 바랍니다 보이지? 우리는 짐작할 필요가있다. 내가 포함 할 헤더를 찾는 데 더 많은 시간을 보냈습니다. 이것은 시간 낭비이고 답을 얻을 확률이 낮아집니다. (나는 그 대답을 당장 알았지 만 전에 Boost Property Map을 사용하지 않았다 ...) – sehe

답변

2

당신은 bimap의 사용할 어느 쪽 그것을 말할 필요 :

typedef boost::associative_property_map<vd_idx_bimap_t::left_map> asso_vd_idx_bimap_t; 
// OR 
typedef boost::associative_property_map<vd_idx_bimap_t::right_map> asso_vd_idx_bimap_t; 

그래서, 그것은 Live on Coliru

#include <boost/bimap.hpp> 
#include <boost/property_map/property_map.hpp> 
#include <iostream> 

using namespace boost; 

int main() 
{ 
    typedef int vertex_descriptor_t; 
    typedef boost::bimaps::bimap< vertex_descriptor_t, size_t > vd_idx_bimap_t; 
    typedef boost::associative_property_map<vd_idx_bimap_t::left_map> asso_vd_idx_bimap_t; 

    // define bimap 
    vd_idx_bimap_t  my_bimap; 
    asso_vd_idx_bimap_t my_asso_bimap(my_bimap.left); 
} 
+0

덕분에 나는 지금 일하고있다. – Pogo

관련 문제