std::map<std::string, Myclass> the_map;
で、存在しないキーを指定してアクセスした時はそのキーが自動的に登録されそのキーに対応する値はその値の型のデフォルトコンストラクタによって初期化されると聞きました。
試したところ、たしかにthe_map["this key doesn't exist."]とするとその値はMyclass()で初期化されていました。
では
std::map<std::string, int> the_map;
だった場合も大丈夫なのでしょうか?
g++ではthe_map["this key doesn't exist."]とするとその値はint()で初期化されて0になっているようですが、これは他の環境でも期待して良い物でしょうか?