特定のキーに対して、そのキーに対応するセットの要素を挿入して印刷したいとします。 私が持っているなら A - オレンジ、リンゴ B - 赤、青C++でset(std :: map <string、std :: set < string>>)のマップを反復処理する方法は?
どうすればいいですか?私が開始する方法がわからない `
std::map<string,std::set<string> > mp;
std::map<string,std::set<string> >::const_iterator row;
std::set<string>:: const_iterator col;
mp["A"].insert("pawan");
mp["A"].insert("patil");
for (row = mp.begin(); row!= mp.end(); row++)
for (col = row->begin(); col!=row.end(); col++)
return 0;`
: は、これまでのところ、私はこれを書かれています。
std::for_each(mp.cbegin(), mp.cend(), [](auto const& pair){
cout << pair.first << ": ";
std::copy(pair.second.cbegin(), pair.second.cend(), std::ostream_iterator<std::string>(std::cout, ", "));
cout << "\n";
});
は
ペアとelemの宣言方法は?申し訳ありませんが、私はC++を初めて使っています。 –
これらは 'auto const&pair'と' auto const&elem'としてここに宣言されています。これにより、コンパイラは実際の型を推測することができ、long型の名前を自分で指定する必要はありません。ライブサンプルを追加しました。 – krzaq
エラー:ISO C++で型が指定されていない「ペア」の宣言が禁止されています for(自動const&pair:mp) –