是否可以(或者确定)拥有std :: list的std :: list?

Kin*_*tor 2 c++

我有一个std :: Points列表(只存储一个x,y).这些点中的每一个都代表一个多边形,我稍后将其绘制.

class Point {
public:
    int x, y;
    Point(int x1, int y1)
    {
        x = x1;
        y = y1;
    }
};

std::list <Point> currentPolygon; 
Run Code Online (Sandbox Code Playgroud)

我想有一个这些多边形的列表(列表本身).

这可能吗?我如何有一个点列表的std ::列表(所以我可以存储多个多边形).

Jef*_*rey 10

确实是.但是你可能想要的 - 为了以后的可扩展性目的 - 创建第二个类 - "多边形",它包含一个点列表.然后使用多边形列表.

编辑:我不是C++程序员,所以我确信如果你需要一个真正的项目,像j_random_hacker的响应更好.我只是想给出一个这个设计的快速代码示例.

class Point {
public:
    int x, y;
    Point(int x1, int y1)
    {
        x = x1;
        y = y1;
    }
};

class Polygon {
public:
    std::list <Point> currentPolygon;
    Polygon(std::list <Point> p1)
    {
        currentPolygon = p1
    }
};
Run Code Online (Sandbox Code Playgroud)


Mat*_*vis 9

你可以用这个:

std::list< std::list<Point> > polygons;
Run Code Online (Sandbox Code Playgroud)

为了简化操作,请使用typedef.

class Point {
public:
    int x, y;
    Point(int x1, int y1)
    {
        x = x1;
        y = y1;
    }
};
typedef std::list<Point> PolygonType;
typedef std::list<PolygonType> PolygonsType;
Run Code Online (Sandbox Code Playgroud)