<分区>
我想改变 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
推导的类型是什么?的 modify_bool
和 b
?