相关疑难解决方法(0)

如何声明同一个类的成员向量?

为什么以下代码有效呢?

struct A {
    std::vector<A> subAs;
};
Run Code Online (Sandbox Code Playgroud)

A是不完整的类型,对吧?如果有一个A*s的矢量我会理解.但在这里,我不明白它是如何工作的.它似乎是一个递归的定义.

c++ templates vector member incomplete-type

46
推荐指数
1
解决办法
2254
查看次数

C++递归类型定义是否可行,特别是我可以在T的定义中放置vector <T>吗?

对于我的一个项目,我真正想要做的是(将其简化为最低限度);

struct Move
{
    int src;
    int dst;
};

struct MoveTree
{
    Move move;
    std::vector<MoveTree> variation;
};
Run Code Online (Sandbox Code Playgroud)

我必须承认,我认为不可能直接这样做,我认为MoveTree中的MoveTree矢量将被禁止.但无论如何我都试过了,它的效果非常好.我正在使用Microsoft Visual Studio 2010 Express.

这是便携式吗?这是好习惯吗?我有什么可担心的吗?

编辑:我问了第二个问题,希望能找到一个好方法.

c++

30
推荐指数
3
解决办法
4069
查看次数

标签 统计

c++ ×2

incomplete-type ×1

member ×1

templates ×1

vector ×1