0
운동에 문제가 있습니다. 나는 몇 개의 숫자를 주어야하며, 프로그램은 역순으로 표시하지만 마지막으로 입력 한 번호는 표시하지 않는다.첫 번째 번호가없는 배열 반전
#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;
}
같은 당신이 입력 마지막 숫자 키를 누릅니다 \n
스트림에 추가됩니다, 입력 getchar()
이를 데리러 때 std::vector
마지막 숫자를 입력하고 * Enter * 키를 누르면 '\ n'이 스트림에 추가되고 'getchar()'가 선택됩니다. 하지만 그때 당신의 상태가 실패하므로 루프가 입력되지 않습니다. – WhiZTiM
* std :: vector *와 동일하다. 또한, vector는'push_front' 함수가 없으므로리스트와 벡터 모두에 대해 단순히'push_back'을 호출 한 다음 역 반복자를 사용하여 루프 할 수 있습니다 ('rbegin(), rend()'). – PaulMcKenzie
@PaulMcKenzie 또는'std :: deque'를 사용하십시오. –