2011-02-11 3 views
2

내가 부스트 라이브러리 (1.44)를 사용하고 있는데 VC++ 2010C++, 부스트 : 숫자 :: ublas :: mapped_matrix - 문제를 반복 사용시 표준 : TR1 :: unordered_map도 대신 표준의 ::지도

나는이 테스트는 StorageUnorderedMap 사용하여 표준 : : TR1 :: unordered_map도 실패

using namespace boost::numeric; 
typedef double value_type; 

typedef ublas::mapped_matrix<value_type> StorageMap; 
typedef ublas::mapped_matrix<value_type, ublas::row_major, std::tr1::unordered_map<size_t, value_type> > StorageUnorderedMap; 

StorageMap mat; //<== (1) 
//StorageUnorderedMap mat; //<== (2) 

//Looping over non-zero elements of sparse matrix. 
size_t numElemLoop= 0; 
for(auto it1= mat.begin1(); it1 != mat.end1(); ++it1) 
{ 
    for(auto it2= it1.begin(); it2 != it1.end(); ++it2) 
    ++numElemLoop; 
} 

assert(mat.nnz() == numElemLoop); //<== (3) 

코드 아래에 몇 가지 문제를 발견했다. 그러나 모두에 대해 insert_element() 및 find_element() 테스트가 통과되었습니다.

+1

코드로 알 수 없습니다. 빈'StorageMap'을 초기화하고 그 위로 반복합니다. – pmr

답변

0

아마도 unordered_multimap을 사용해보십시오. 동일한 키로 인해 일부 삽입이 실패 할 수 있습니다. 그럼 카운트가 일치하지 않습니다.

관련 문제