c++ - 为什么 emplace_back 使用参数包作为参数?
问题描述
我正在用 C++ 编写我自己的标准库版本。当谈到emplace_back
向量中的函数时,我看到如下签名。
template
<class... Args>
void emplace_back (Args&&... args);
我认为它可以接受多个元素并一次放置它们,因为这是使用参数包的一个好处,但描述显示该函数一次只能放置一个项目。我查看了这个函数的其他实现,他们也只处理了一个项目。
为什么 C++ 在这种情况下使用参数包?
解决方案
为什么 emplace_back 使用参数包作为参数?
因为类可以具有通常可以接受任意数量参数的构造函数。为了转发任意数量的参数,我们需要使用可变参数包。
我认为它可以接受多个元素
它不是。它为单个元素的构造函数接受零个或多个参数。
推荐阅读
- python - 为什么不能用硒获得 hkdrates 表?
- javascript - 过滤数组中的两个对象并追加到组件中
- swift - 我可以在两个不同的 collectionView 之间有一个自定义视图吗?
- python - Django - 将字符串的一部分添加到新行无法正常工作
- python - 有没有办法在 python 中使用数据集中的变量计数以日期作为预测变量来运行线性回归?
- javascript - 如何在 react-native 中从子组件(带参数)调用父函数?
- ember.js - 如何在 ember-simple-auth 中替换授权方法
- machine-learning - 考虑多个变量的机器学习预测,这可能吗?
- excel - 如何跨多个条目标记修订的人员记录
- javascript - Javascript 镜像 html 对象