1

boost :: multi_index 라이브러리에서 이터레이터의 투영 복잡성에 대해 아는 사람이 있습니까? 설명서는 여기 boost::multi_index projection of iterators에서 찾을 수 있지만 작업의 복잡성은 언급되어 있지 않습니다.boost :: multi_index 컨테이너에서 iterators 기능의 투영 복잡성

기본 개념은 인덱스 내의 오브젝트에 대한 반복자를 검색 한 후이를 두 번째 인덱스로 투영하고 동일한 오브젝트에 있지만 두 번째 인덱스 내에서 반복자를 얻을 수 있다는 것입니다. 이것이 O (1) 연산 인 경우 두 인덱스를 빠르게 유지할 수 있습니다. 하나는 빠르게 검색 할 수 있고 다른 하나는 느리게 검색 할 수 있습니다. iterator의 투영은 내가 이해할 수있는 것처럼 인덱스에서 빠르게 검색된 객체를 찾은 다음 더 느린 검색 가능 인덱스에 투영합니다.

이터레이터의 투영을위한 간단한 O (1) 조회인지 또는 두 번째 인덱스에서 찾기 작업을 효과적으로 시작했는지 여부를 알고 싶어하므로 예상하는 특정 인덱스에 따라 달라집니다 O (1)보다 느립니다.

많은 도움을 주셔서 감사합니다.

답변

2

이 빨리가수록, 실제로, documentation에 명시된 바와 같이, 일정한 시간, 그리고 :

template<int N,typename IteratorType> 
    typename nth_index_iterator<N>::type project(IteratorType it) 
    { 
    typedef typename nth_index<N>::type index_type; 
    ... 
    return index_type::make_iterator(static_cast<node_type*>(it.get_node())); 
    } 

이 단지 어떤 인덱스 반복자에 의해 개최 된 내부 노드 포인터의 재배치입니다.

+0

나는 내 인생에서 당신이 연결 한 문서를 찾지 못했습니다. 그게 내가 찾고있는 문서입니다! 다시 한 번 신속하게 내 질문에 간결하게 답변했습니다. Joaquin에게 감사드립니다. – ConfusedBoostUser