【发布时间】:2017-05-07 17:56:02
【问题描述】:
我正在编写一个类 BitVector,其中我有一个返回 BitVector 容量的方法。我的想法是调用 std::vector 容量(),但我遇到了一个我有点困惑的错误。下面是我的方法:
int BitVector::Size() {
int size = (int) this->bitVector().capacity();
}
我遇到的错误是“明显调用的表达式前括号必须具有 (pointer-to-) 函数类型。这里有什么问题?
关于我的班级的其他背景信息:
我的 BitVector 类具有通常的公共构造函数、解构函数等,然后是指向向量的私有指针,如下所示:
private:
std::vector<uint8_t>* bitVector;
在我的构造函数中,我将指针指向堆上的一个向量,如下所示:
BitVector::BitVector(int numBits) {
this->bitVector = new std::vector<uint8_t> (numBits, 0);
}
【问题讨论】:
-
bitVector是一个指针,必须取消引用,this->bitVector().capacity();->bitVector()->capacity();。 -
你真的需要使用指向你的向量的指针吗?
-
可能不会,只有矢量会更有意义吗?不过,我确实需要它。所以我认为指针有意义吗?非常新的 C++ 程序员!感谢您的建议
-
@Vic 向量将所有实际数据存储在堆上,因此很难找到指向它们的理由:)
-
事实上,向量基本上是一个动态数组,所有繁琐的部分都在幕后为您完成。
标签: c++ pointers vector capacity