だから、私は二重リンクリストに姓と名を追加しようとしています。 "string、string"という形式のさまざまな長さのさまざまなテキストファイルがあり、リストを使用してデータを格納しています。リストとペアに関する混乱
私はこのコードを使用しています:
typedef std::list< std::pair<string,string> > listPair;
...
list<pair<string, string> > mylist;
ifstream myFile;
myFile.open("20.txt");
pair<string, string> stuff;
while (myFile >> stuff.first >> stuff.second)
{
mylist.push_back(stuff);
}
listPair::iterator iter = mylist.begin();
for(;iter != mylist.end();iter++)
{
string s = (*iter).first;
cout << s << endl;
string c = (*iter).second;
cout << c << endl;
}
は今私がいる問題は、まず、リストの最後の項目が追加されていないことです。 のように、すべてのファイルが終了行を逃してしまっているので、少し混乱します。
また、すべての名前が追加されていることを確認するためにmylist.size()を実行しています。99の名前、つまり99行のテキストを含むテキストファイルについては、 (最後の行がないために98で読み込まれることを忘れないでください)、リストのサイズは48です。
WHY 48? 私はペアを成し遂げたので何かすることはできますか?それでもペアで読むのではないように実際には二重であるかのように理にかなっていません。ペアは単にファーストネームとファーストネームを1つの値として取るためです。
私に怒鳴りつく心。
もう一度お世話になりました。
あなたは 'getline'を探しているのでしょうか? –
ちょうど助言として、汎用コンテナとして 'list'ではなく' vector'を使うべきです。あなたがそれを使用している方法から、私はここに 'list'の必要性を見ません。 –
入力ファイル '20.txt'(または少なくとも抽出ファイル)を追加できますか?あなたの入力が適切にフォーマットされていない可能性があります。 – Zeta