c++ - 在 C++ 中复制函数参数

标签 c++

我正在阅读这本名为 accelerated c++ 的书。对于如下所示的“复制”

// error - no element at ret.end() 
copy(bottom.begin(), bottom.end(), ret.end());

书中提到,使用ret.end()作为第三个参数是不正确的。但是ret.end()返回的是'ret'容器最后一个元素的迭代器。什么是这个论点有什么问题吗?他们建议改用“back_inserter(ret)”。为什么会这样?

最佳答案

ret.end 的问题在于,尽管它指向容器末尾之后的一个,但在内存中的该位置或之后可能没有分配任何内容。由于写入尚未分配给您的程序的内存位置是未定义的行为,因此您确实应该使用 back_inserter

关于c++ - 在 C++ 中复制函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11636777/

相关文章:

c++ - 我可以在调整大小时锁定 MFC 对话框的宽度或高度吗?

c++ - 用模板参数填充容器

c++ - 为什么 clang 4.0 不捕获标准异常?

c++ - 在不压缩的情况下在opencv中保存帧

c++ - 如何检查类型 'T' 是否有 'T(std::initializer_list<U>)' 构造函数

c++ - 我正在尝试显示我输入的三个值中最大和最小的数量

c++ - 提升asio服务器以了解客户端何时关闭套接字

c++ - 二进制文件如何在C编程中可移植?

c++ - 使用链式#defines 声明纯语言整数索引是个好主意吗?

c++ - 无法将 PAPI 库与 opt llvm 链接