5
C ++マップアクセス破棄修飾子(const)
次のコードはconst、operator[]メソッドとしてマップを渡すと修飾子が破棄されることを示しています。 #include <iostream> #include <map> #include <string> using namespace std; class MapWrapper { public: const int &get_value(const int &key) const { return _map[key]; } private: map<int, int> _map; }; int main() { MapWrapper mw; cout << mw.get_value(42) << endl; return 0; } これは、マップアクセスで発生する可能性がある割り当てのためですか?マップアクセスを持つ関数をconstとして宣言することはできませんか? MapWrapper.cpp:10: error: passing ‘const std::map<int, int, std::less<int>, …