0

我对reference_wrapper完全陌生,所以我需要一个非常简单的例子来理解,拜托。

我声明了两个向量:

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

我用一些值填充 vec,然后我希望 vec_r 存储对 vec 的每个元素的引用,并且我想将值分配给 vec_r 以修改存储在 vec 中的值。我该怎么办?

4

1 回答 1

4

vec_r使用适当的构造函数使用的内容进行初始化vec

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

它之所以有效,是因为引用包装器可以从它们包装的类型构造和分配。

但是请注意,vec事后修改可能会使vec_r. 所以小心行事。

于 2017-07-03T14:11:37.810 回答