我有一个类
class clsNode
{
private:
vector<clsNode*>m_Daughters;
但是,此 vector 将始终仅包含2个clsNode指针。它不应是动态 vector ,而应是一个固定长度的数组,该数组可以容纳2个指向2个clsNodes的指针。
我试过了
vector<clsNode*>m_Daughters[2];
但这引发了很多编译器错误。
有人可以告诉我如何正确执行此操作吗?
最佳答案
这个定义有问题
vector<clsNode*> m_Daughters[2];
它使
m_Daughters
成为两个vector<clsNode*>
的数组,这与您的目的相去甚远。要设置大小,可以使用其constructor
class clsNode
{
vector<clsNode*> m_Daughters;
public:
clsNode() : m_Daughters(2)
{}
};
如果大小恒定,则可以使用
std::array
:class clsNode
{
array<clsNode*, 2> m_Daughters;
};
关于c++ - C++固定数量的 vector 大小作为类成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16762573/