私はmap<string,vector<string> >
という文字列を文字列のリストにマッピングするdictを持っています。私は空の値を特定のキーの値に割り当てたい。後で値をプッシュする空のベクトルを作成する
else dict[words[i]]=<EMPTY VECTOR WHERE I CAN PUSH DATA LATER INTO>;
wordsは文字列のベクトルです。これはどうすればいいですか?もちろん、標準のテンプレートライブラリを使用しています。
私はmap<string,vector<string> >
という文字列を文字列のリストにマッピングするdictを持っています。私は空の値を特定のキーの値に割り当てたい。後で値をプッシュする空のベクトルを作成する
else dict[words[i]]=<EMPTY VECTOR WHERE I CAN PUSH DATA LATER INTO>;
wordsは文字列のベクトルです。これはどうすればいいですか?もちろん、標準のテンプレートライブラリを使用しています。
else dict[words[i]];
は、単独で十分でなければなりません。 dict
にまだwords[i]
相当のキーを持つ要素が含まれていない場合は、words[i]
のコピーをキーとしてデフォルトの構成済み(空の)ベクトルを値として新しい要素がdict
に作成されます。
に相当する要素がすでにdict
に含まれている場合、dict
は変更されません。
これで十分ですが、意図がコードの読者にとって必ずしも明確ではありません。 –
'dict'は' map'です。これは 'insert'関数を提供します。 C++ 11のバージョンはかなり簡潔ですが、 'dict.insert(map
dict[words[i]] = std::vector<std::string>();
'dict'に' words [i] 'と同等のキーを持つ要素が既に含まれているとしたら、どんなふうにしたいですか? (あるいはコードの残りの部分はそれを不可能にしますか?) – Mankarse
'dict'に' words [i] 'と呼ばれるキーが含まれていれば、そのキーに関連付けられている何かをプッシュします。その理由は、その声明の中の「else」です。私は、私が持っていた問題を実際には正確に言及していないコードを提供することが、不必要に複雑になると思っていました。 – thekindlyone