C++ 将n个符号复制到容器

C++ 将n个符号复制到容器,c++,stl,C++,Stl,可能重复: 你好。 我正在从文件中读取nums。我用std::copy来做 但是这个函数只复制整个文件,尽管我只想复制N个符号。 谢谢。的STL参考非常好。第二个参数必须是要读取的项目数 使现代化 更改您的初始帖子后,其中使用了copy\n 您可以使用一个简单的循环来做您想做的事情,如中所示 template <typename Input, typename Output> Output copy_n (Input i, size_t N, Output o) { f

可能重复:

你好。 我正在从文件中读取nums。我用std::copy来做

但是这个函数只复制整个文件,尽管我只想复制N个符号。 谢谢。

的STL参考非常好。第二个参数必须是要读取的项目数

使现代化 更改您的初始帖子后,其中使用了copy\n

您可以使用一个简单的循环来做您想做的事情,如中所示

template <typename Input, typename Output>
Output copy_n (Input i, size_t N, Output o)
  {
    for (; N > 0; --N)
      {
        *o = *i;
        ++i;
        ++o;
      }
    return o;
  }

第一条信息有拼写错误。我使用函数std::copy,而不是std::copy\n。但我不能使用STD::CopySn,因为我有老编译器-微软Visual C++ +33.这个函数是SGI扩展;它不是C++标准的一部分。OP最初在他的第一篇文章中使用它。它也是新标准的一部分,但是可以很容易地实现,如@ NeNyDely:您的代码有缺陷,如果迭代器在N增量之前遇到结束,会发生什么?你不应该跳出这个循环吗?结尾是否也应该传入?
template <typename Input, typename Output>
Output copy_n (Input i, size_t N, Output o)
  {
    for (; N > 0; --N)
      {
        *o = *i;
        ++i;
        ++o;
      }
    return o;
  }