C++ 将n个符号复制到容器
可能重复: 你好。 我正在从文件中读取nums。我用std::copy来做 但是这个函数只复制整个文件,尽管我只想复制N个符号。 谢谢。的STL参考非常好。第二个参数必须是要读取的项目数 使现代化 更改您的初始帖子后,其中使用了copy\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
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;
}