C++如何使用reference_wrapper向量

C++如何使用reference_wrapper向量

问题描述:

我对reference_wrapper完全陌生,所以我需要一个非常简单的例子来理解。C++如何使用reference_wrapper向量

我声明两个载体:

std::vector<int> vec; 
std::vector<std::reference_wrapper<int>> vec_r; 

我填VEC与一些值,那么我想vec_r到的引用存储VEC的每个元素,并且我要分配值,以便修改值至vec_r存储在vec中。我该怎么办?

+0

您可以查看手册中的示例:http://en.cppreference.com/w/cpp/utility/functional/reference_wrapper – Galik

初始化vec_rvec内容,使用适当的构造函数:

std::vector<std::reference_wrapper<int>> vec_r(begin(vec), end(vec)); 

它的工作原理,因为引用包装从他们包裹型constructible和分配。

不过要注意的是,事后修改vec可以使vec_r中的所有内容无效。所以小心行事。