给定一个大小为 10 的向量 v1,我想将 v1 的第 1、3 和 7 个元素作为单个函数参数传递。与其创建另一个向量 v2,而是按值复制 v1 中的三个元素并传递 v2 的引用,还有没有更有效的方法来传递参数(即不创建 v2 并按值复制元素)?
根据所需的行为,您可以传递一个vector<reference_wrapper>或其他容器reference_wrapper:
#include <vector>
#include <functional>
void f(std::vector<std::reference_wrapper<double>>) {}
void g() {
std::vector<double> v(10);
f({v[0], v[2], v[6]});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1938 次 |
| 最近记录: |