読み取り専用の std:map データ構造が必要です。つまり、一度データを入力してから、それらの値を読み取るだけで、値を変更したり追加したりしないでください。
私の非 const バージョンは次のようになります。
//in .h
#include <string>
#include <map>
std::map<std::string, int> myMap;
void initMap();
//in .cpp
#include "foo.h"
void initMap() {
myMap["Keys"] = 42;
}
initMap()
次に、コード内で 1 回呼び出すだけで完了です。
ここですでにいくつかの質問を読みましたが、マップの const-ness を達成することは自明ではないようです。
にすると、std::map<std::string, const int>
に入力できなくなりますinitMap()
。コピー コンストラクターは非 const バージョンを入力として簡単に取得できないため、非 const temp と定義のコピー コンストラクターを入力しても機能しません。
これconst std::map<std::string, int>
を (定義中に const 以外のコピーで埋めることができる) にすると、[]
値アクセスに演算子を使用できなくなります。
const-ness (値) を達成し、構造を初期化する方法はありますか (できればヘッダー ファイルで)。
ところで:C++0xもC++11もboost::
オプションではありません。