エラーを理解するのに苦労しています。ベクトルの単純なマップを使用しています (文字列でキーを設定し、文字列のベクトルを格納します):
typedef std::map<std::string, std::vector<std::string> > TRouteMarkets;
次のコード (削除)、
void CFoo::Bar(const char* route, const char* market)
{
// ...
TRouteMarkets::key_type key(route);
TRouteMarkets::mapped_type mapped();
TRouteMarkets::value_type pair(key, mapped);
// ...
}
次のエラーが発生します。
"Foo.cc"、518 行目: エラー: std::pair<const std::string, std::vector<std::string>>::pair(const std::string, std の一致が見つかりませんでした::vector<std::string>()) CFoo::Bar(const char*, const char*) に必要です。
しかし、()
マップからを削除します。つまり、
TRouteMarkets::mapped_type mapped;
エラーを修正します。なんで?mapped
どちらの場合も、文字列の空のベクトルではありませんか?