我不明白如何僅在Stl地圖的一部分上進行迭代,而不是像在標準遍歷中那樣從開始到結束迭代。這裏是我的代碼:如何在C++中迭代STL Map的子集
auto end = temp_map.rbegin() + THRESHOLD_NUM;
for (auto rit = temp_map.rbegin(); rit != end; ++rit)
{
int s = rit->second;
for (int k = 0; k < MAX_ROWS; k++)
{
array_dist_it[k] = abs(input[k] - input_matrix[k][s]);
}
float av_real = mean(MAX_ROWS, array_dist_it);
float score_real = score_func(av_real);
rank_function(score_real, s);
}
}
我認爲這個問題與for循環的語法有關,特別是與迭代器有關。錯誤是關於無效的操作員。
這不是一個衆包調試平臺。你有沒有通過可能性? _你覺得什麼是錯的?你有什麼試圖解決它?你認爲還有其他什麼方法可行?你嘗試過那些嗎?你研究過哪些研究材料,以及爲什麼你認爲其中推薦的方法不適合你的情況?堆棧溢出不是*思想*的替代;至少,它該死的不應該。 –
「有什麼問題」有什麼不對? –
對不起,如果我已經很好地解釋了自己,顯然我已經嘗試了所有可能性,這個錯誤當然與迭代器有關。我不是爲了證明自己,而是爲了向你尋求解決方案。很明顯,我在詢問之前已經尋找其他可能性。我不完全明白你的觀點。如果對你而言,我的問題微不足道是另一點。 – CIVI89