使用流迭代器, sort, co…

来源:互联网 发布:我知谁掌管明天歌词 编辑:程序博客网 时间:2024/05/21 06:28
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;
    return0;
}

开始我输入类似123124234234234内容后, 输入中断,输出为空, 输出numbers.size()之后发现为0, 后来发现是因为超出了int的范围 ==!将int改为long long可以解决, 或者输入的内容在int范围之内也可以, 我希望可以在输入时检查输入的合法性, 但目前不知从何入手, 希望在接下来的学习中可以找到办法.
0 0