我有一个类

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/

10-13 04:06