1.代码示例
g++ std-ref.cpp
#include <iostream>
#include <functional> // 包含 std::ref
#include <vector>
void modifyVector(std::vector<int>& vec) {
for (auto& v : vec) {
v *= 2; // 将每个元素乘以 2
}
}
int main() {
std::vector<int> myVector = {1, 2, 3, 4, 5};
// 使用 std::ref 传递 myVector 的引用
auto modifyFunc = [](std::vector<int>& vec) {
modifyVector(vec);
};
// 调用 lambda 函数,传递 myVector 的引用
modifyFunc(std::ref(myVector));
// 输出修改后的向量
for (const auto& v : myVector) {
std::cout << v << " "; // 输出: 2 4 6 8 10
}
std::cout << std::endl;
return 0;
}
2.编译
# g++ std-ref.cpp
3.运行
# ./a.out
2 4 6 8 10