0
私は運動に問題があります。私はいくつかの数字を与える必要があり、プログラムはそれらを逆順に表示することですが、最後に入力した数字は表示されません。あなたの入力し、最後の番号を入力し、Enterキーを押したとき逆配列 - 最初の番号なし
#include <iostream>
#include <list>
#include <cstdio>
using namespace std;
list <int> lista;
int main() {
int liczba;
while ((cin >> liczba) &&(getchar()!='\n')) {
lista.push_front(liczba);
}
for(list<int>::iterator i=lista.begin();i != lista.end(); ++i)
cout<<*i<<" ";
return 0;
}
同じことがstd::vector
最後の数字を入力して* Enter *を押すと、ストリームに '\ n 'が追加され、' getchar() 'がそれを取り込みます。しかしあなたの状態が失敗するので、ループは入力されません。 – WhiZTiM
*同じことがstd :: vector *にあります - さらに、 'vector'は' push_front'関数を持たないので、リストとベクトルの両方に対して 'push_back'を単に呼び出すことができ、逆の反復子を使ってループします(' rbegin ()、rend() ')を呼び出します。 – PaulMcKenzie
@PaulMcKenzieまたは 'std :: deque'を使用してください –