0
我想從for循環中的地圖中獲取元素。繼cppreference的例子,我試試這個:`[]`運算符導致在地圖上編譯錯誤
#include <iostream>
#include <map>
using namespace std;
int main()
{
map<int, int> mapping;
mapping.insert(pair<int, int>(11,1));
mapping.insert(pair<int, int>(12,2));
mapping.insert(pair<int, int>(13,3));
for (const auto &it : mapping)
mapping[it]++;
cout << "array: ";
for (const auto &it : mapping)
cout << it.second << " ";
return 0;
}
其中給出用gcc以下編譯錯誤:如果我理解正確的問題是,auto
被解析爲std::pair<const int, int>
針對
main.cpp: In function 'int main()':
main.cpp:15:16: error: no match for 'operator[]' (operand types are 'std::map<int, int>' and 'const std::pair<const int, int>')
mapping[it]++;
沒有定義[]
運算符。我想知道是否有辦法讓這個工作。
查看完整的編譯錯誤here
與具有類似C++語法的語言不同,它不是關鍵。相反,「它」是地圖中的實際對。 –