使用流迭代器, sort, co…
int main ()
{
cout
<< "Please input some numbers:" << endl;
//定义输入流迭代器和尾后迭代器
istream_iterator input_number_it (cin),
eof;
//用迭代器与尾后迭代器初始化vector
vectornumbers(input_number_it, eof);
sort
(numbers.begin (), numbers.end ());
//定义输出流迭代器,
其输出的每个值后面都输出一个" "
ostream_iterator output_numbers (cout, "
");
/*
输出方式也可以使用以下两种:
for(auto e :
numbers)
*output_numbers++ = e;
和
for(auto e :
numbers)
output_number = e;
以上两者均可,
推荐前一种,
想修改为其他迭代器时更为方便
*/
//使用copy更为简单
copy
(numbers.begin (), numbers.end (), output_numbers);
cout
<< endl;
return
0;
}
开始我输入类似123124234234234内容后, 输入中断, 输出为空,输出numbers.size()之后发现为0, 后来发现是因为超出了int的范围 =
=!
将int改为long long可以解决, 或者输入的内容在int范围之内也可以, 我希望可以在输入时检查输入的合法性, 但目前不知从何入手, 希望在接下来的学习中可以找到办法.
{
}
开始我输入类似123124234234234内容后, 输入中断, 输出为空,