2017-02-20 10 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に割り当てるには、非constとして宣言する必要があります。

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

...ちょうど不当なdowvoteを補うために。 – Pixelchemist

関連する問題