C++ 如何使用 reference_wrapper 的向量
C++ how to use vector of reference_wrapper
我对reference_wrapper完全陌生,所以我需要一个非常简单的例子来理解,谢谢。
我声明了两个向量:
std::vector<int> vec;
std::vector<std::reference_wrapper<int>> vec_r;
我用一些值填充vec,然后我想vec_r存储对vec每个元素的引用,我想给vec_r赋值,以便修改存储在vec中的值.我该怎么办?
用 vec
的内容初始化 vec_r
,使用适当的构造函数:
std::vector<std::reference_wrapper<int>> vec_r(begin(vec), end(vec));
之所以有效,是因为引用包装器可以从它们包装的类型中构造和分配。
但是请注意,事后修改 vec
会使 vec_r
中的所有内容无效。所以小心行事。
我对reference_wrapper完全陌生,所以我需要一个非常简单的例子来理解,谢谢。
我声明了两个向量:
std::vector<int> vec;
std::vector<std::reference_wrapper<int>> vec_r;
我用一些值填充vec,然后我想vec_r存储对vec每个元素的引用,我想给vec_r赋值,以便修改存储在vec中的值.我该怎么办?
用 vec
的内容初始化 vec_r
,使用适当的构造函数:
std::vector<std::reference_wrapper<int>> vec_r(begin(vec), end(vec));
之所以有效,是因为引用包装器可以从它们包装的类型中构造和分配。
但是请注意,事后修改 vec
会使 vec_r
中的所有内容无效。所以小心行事。