Boost:使用reference_wrapper进行引用包装的测试程序
C++中有时需要在函数中对变量进行引用传递,这时候我们可以使用reference来声明引用类型的变量。但是有时候我们需要在函数中对多个变量进行引用传递,这时候我们就需要使用reference_wrapper。
reference_wrapper是一个类模板,其目的是将对象包装为一个引用,这个引用可以像普通引用一样使用。同时,reference_wrapper也可以使用拷贝和赋值操作符,从而达到对被包装对象的拷贝和赋值目的。
下面是一个使用reference_wrapper进行引用包装的示例程序:
#include <iostream>
#include <functional>
#include <vector>
int main() {
std::vector<int> vec{1, 2, 3, 4, 5};
// 使用 reference_wrapper 进行引用包装
std::vector<std::reference_wrapper<int>> vec_ref;
for (auto& i : vec) {
vec_ref.emplace_back(i);
}
// 输出原始数组
std::cout << "Original Vector: ";
for (const auto& i : vec) {
std::cou