2

/n などの区切り文字で終わる文字ベクトルから文字列を取得する効率的な方法があるかどうか、私は興味がありました。

4

1 に答える 1

2

std::vector<char>と astd::stringはメモリを共有できないため、コピーが必要です。それを考えると、最初に停止したい場合'\n'

std::string s( v.begin(), std::find( v.begin(), v.end(), '\n' ) );

トリックを行う必要があります。(結果の文字列には が含まれません'\n'。)

std::findおそらく、ベクトルの残りの部分を後で解析し続けることができるように、中間変数にの結果を保存する必要があります。

于 2013-08-19T17:17:30.750 に答える