#include <vector>
void main() {
std::vector<int> test[2];
auto funct = [test](){ test[0].push_back(1); };
funct();
}
结果我得到捕捉阵列使元素常量
main.cc:5:45: error: passing ‘const std::vector’ as ‘this’ argument of ‘void std::vector<_Tp, _Alloc>::push_back(std::vector<_Tp, _Alloc>::value_type&&) [with _Tp = int; _Alloc = std::allocator; std::vector<_Tp, _Alloc>::value_type = int]’ discards qualifiers [-fpermissive] auto funct = test{ test[0].push_back(1); };
我如何能捕捉test
指针未做其价值const
?除了使其成为vector<vector<int>>
之外,还有其他方法吗?为什么它甚至成为一个常量?
并且不是直接重复:'test'不是指针_。这是一个数组。有很多情况下数组会衰减指针,但这不是其中之一(并且您的数组是通过值复制的)。 – Useless