0
Cでは、区切り文字をNullに置き換えることができ、char * - > char *のマップを比較関数で動作させることができます。In std :: stringをキー値のマップにトークン化
私は現代のC++でこれをできるだけ速く行う方法を見つけようとしています。アイデアは、マップ内の文字のコピーを避けることです。
std::map<std::string,std::string> sample_map;
へ
std::string sample_string("name=alpha;title=something;job=nothing");
文字をコピーせずに。
元の入力文字列を失っても問題ありません。
'string'はリソースを所有しているので、コピーできません。 – Barry
'shared_ptr'を使います。 – rustyx
'shared_ptr'よりも良い方法は、' std :: string_view'(C++ 17のドラフトの一部ですが、実験的な機能としてすでに出荷されているコンパイラのようです)を使用することです。他の選択肢は 'boost :: string_view'、' boost :: string_ref'と 'gsl :: string_span'です。 –