我想在std::vector<bool>
通过引用使用函数时更改一个变量的状态,但这不起作用,因为std::vector<bool>
它是一个代理对象。但是,当我尝试使用它进行更改时,lambda expression
我可以对其进行修改。这是一个例子:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(int argc, char **argv)
{
vector<bool> v(10, true);
auto modify_bool = [](auto b){ b = false; };
modify_bool(v[1]);
for(bool b:v)
cout << b << endl;
return 0;
}
我可以看到v[1]
已更改为false
. auto
我的问题是ofmodify_bool
和推导出的类型是什么b
?