如何设置reference_wrapper的STL容器的初始大小?

non*_*one 3 c++ stl c++11 reference-wrapper

我有vector一些包含的引用类型reference_wrapper.由于我需要按顺序填充此容器,我正在尝试为容器设置初始大小:

vector<std::reference_wrapper<T>> v(5);

v[3] = ..
v[2] = ..
v[4] = ..
v[5] = ..
v[1] = ..
Run Code Online (Sandbox Code Playgroud)

这无法编译,如下所示:

error: no matching function for call to ‘std::reference_wrapper<int>::reference_wrapper()’
Run Code Online (Sandbox Code Playgroud)

是否有解决方法使这项工作或我必须vector<T*>为此目的使用?

Rei*_*ica 5

你可以提供一个原型,一种你自己的"未初始化"值:

T blank;
std::vector<std::reference_wrapper<T>> v(5, ref(blank));
Run Code Online (Sandbox Code Playgroud)