【发布时间】:2018-01-11 06:33:06
【问题描述】:
假设我给一个 C++ 程序输入如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
C++ 代码:
int n;
for (int i = 0; i < 15; i++)
{
std::cin >> n;
// use the value of n to make changes
}
在上面的代码中,我可以顺序读取输入,
即1 2 3 4 5 6 7 8 9 10 11 12 13 14 15。
有什么方法可以按以下顺序从输入流中直接读取输入(不使用 C++ 程序中的额外内存):
5 4 3 2 1 10 9 8 7 6 15 14 13 12 11
前五位倒序5 4 3 2 1,后五位倒序10 9 8 7 6,...
【问题讨论】:
-
是否需要这样读取,还是可以读取后再重新排序?
-
逆流游泳.....
-
听起来你想把它们放在一个数组中(
std::vector),然后使用自定义排序函数对数组进行排序(使用std::stort) -
这可能是the XY Problem?您可以按原样阅读,稍后再重新排序。
-
没有办法从
std::cin以不同于输入的顺序读取值。读取五个值,排序,输出。重复两次。某些东西(例如数组、对象或容器)需要内存来保存五个值。