2017-02-20 1 views
-2

나는 std::map<string, int>std::vector<vector<double>>입니다. 컨테이너를 동시에 두 번 반복해야합니다. doing this way. 그리고 2-D std::vector의 값을 업데이트하고 싶습니다.오류 : 읽기 전용 참조 'it'이 지정 되었습니까?

map<string,int> portfolioCategories = optimizationPortfolioCategories(); 
vector<vector<double>> coVarianceMatrix(numberOfCategory,vector<double>(numberOfCategory)); 
auto map_itr = portfolioCategories.begin(); 
auto vec_itr = coVarianceMatrix.begin(); 
for(; map_itr != portfolioCategories.end() && vec_itr != coVarianceMatrix.end(); map_itr++, vec_itr++) { 
    for(const auto& it: (*vec_itr)) 
     it = coVariance(monthlyReturnFundCategory[index],monthlyReturnFundCategory[count]); 
} 

두 컨테이너를 동시에 반복하여 어떻게 2D 벡터의 값을 업데이트 할 수 있습니까?

+2

질문이 있으십니까? –

+1

@ Shravan40 왜 거기에'const'를 사용 했나요? 또한 루프 값을 기반으로하는 범위는 일반적으로 반복자가 아닙니다. –

답변

1

에 할당 할 수 없습니다. itconst auto&으로 지정 했으므로 it에 할당 할 수 없습니다. it에 할당 할 수 있으려면 non-const로 선언해야합니다.

for (auto& it : *vec_itr) 
// ^^^^^^^^ 
// not const 
+2

... 정당하지 않은 dowvote를 만회하십시오. – Pixelchemist

관련 문제