テキスト ファイルの行を解析して、vector<string>
. 私はJavaのバックグラウンドから来ており、C++がバッファの値に代入する方法について混乱しています。これが私のコードです:
string line;
vector<string> adsList;
ifstream inputFile;
inputFile.open("test.txt");
while(getline(inputFile, line))
{
adsList.push_back(line);
}
Java では、データ構造に追加するときにオブジェクトのコピーが作成され、そのコピーが挿入されます。C ++では、データ構造は参照のみを保持するため、操作は非常に高速であると理解しています。C++ でやりたいことを実現する適切な方法は何ですか? 次のコードも試しました。
vector<string> adsList;
string line;
ifstream inputFile;
inputFile.open("test.txt");
while(getline(inputFile, line))
{
string *temp = new string;
*temp = line;
adsList.push_back(*temp);
}
ここでの私の推論は、新しい文字列オブジェクトを作成して保存すると、各ループ反復が破棄された後もそれが保持されるということです。C++ はこれを Java とは正反対に処理しているようで、私は頭を悩ませています。
編集: test.txt は次のようになります。
item1 item1 item1
item2 item2 item2
item3 item3 item3
item4 item4 item4
各行を文字列として保存し、その文字列をベクター内に保存しようとしています。したがって、ベクトルの先頭には、値が「item1 item1 item1」の文字列が含まれます。