c++ - std::vector 与按值传递的动态数组
问题描述
您好,我正在从 c 到 c++,我一直想知道为什么 std::vector 可以按值传递。
我假设不可能通过值传递动态分配的数组,因为那只会复制指针。
如果向量类内部是相同的指针,那么如何复制向量。它必须以某种方式知道如何将其重构为另一个对象。
解决方案
std::vector
知道有多少元素存储在动态内存中。分配该大小的新缓冲区并将内容复制到该新内存中是一件简单的事情。所有这些都发生在复制构造函数中。
推荐阅读
- javascript - HTML, CSS Chatbox 分别使用百分比对齐所有元素
- reactjs - Gatsby + Netlify CMS:有什么方法可以为 src/pages/index.js 中的每个条目启用特色图像?
- php - 在我的开发服务器上保存 pdf 的文件位置
- ios - 写入前一个领域对象而不是下一个
- pandas - 在 Pandas 中使用 .0 更改列名
- java - Math.random() *100 节 Math.random(100)
- laravel - 在 Laravel 中转换模板(html/css/js)
- symfony - 如何在 symfony4 中发送令牌?
- ios - 使用自定义单元格在 UITableView 中展开 UILabel 时 Swift 崩溃
- docker - 容器启动后,docker daemon 在 kubernetes 中做了什么?