【发布时间】:2020-01-10 06:30:10
【问题描述】:
如果我想要一个指向 int 向量向量中元素的指针,我会写:
vector<vector<int>> a (5);
int* p1 = a[4].data();
但是,当我编写时,它不适用于 bool 向量的向量(为什么?):
vector<vector<bool>> b(5);
bool* p2 = b[4].data();
编译器输出如下错误信息:
Semantic issue: Error: Cannot initialize a variable of type "bool*" with an rvalue of type "void".
【问题讨论】:
-
tl;dr -
std::vector<bool>很特别而且很奇怪。 -
std::vector<bool>::reference没有data方法。 -
您完全不可能使用向量
。如果您确实想获取容器中事物的地址,请使用 std::deque 或 std::vector ..
标签: c++ pointers vector boolean