C++ 如何创建动态列表

C++ 如何创建动态列表,c++,visual-c++,C++,Visual C++,新手。。。 我想创建一个动态增长的列表,其中包含点变量、两个int变量以及Argb的任何颜色变量 我在Visual Studio C++ 2010 中做这件事 在程序中处理这些数据的最佳方法是什么?它需要存储用户在屏幕上创建的对象的位置、大小和颜色,以便我在刷新表单时将它们拉回到表单中。目前我有一个非常好的程序,可以用不同的颜色绘制正方形、圆形和直线,我可以移动那个对象,但这只是因为我仍然保留着当前的对象/形状数据。创建一个结构或类来保存一个形状的信息,然后使用一个来保存它们的列表 std::v

新手。。。 我想创建一个动态增长的列表,其中包含点变量、两个int变量以及Argb的任何颜色变量

我在Visual Studio C++ 2010

中做这件事
在程序中处理这些数据的最佳方法是什么?它需要存储用户在屏幕上创建的对象的位置、大小和颜色,以便我在刷新表单时将它们拉回到表单中。目前我有一个非常好的程序,可以用不同的颜色绘制正方形、圆形和直线,我可以移动那个对象,但这只是因为我仍然保留着当前的对象/形状数据。

创建一个结构或类来保存一个形状的信息,然后使用一个来保存它们的列表

std::vector<Shape> myShapes;
std::vector myShapes;
如果您的所有形状都可以用基本相同的数据集来描述,并且某些数据段的大小存在一些差异,例如“点变量”的数量随着形状的变化而变化,那么在形状类中有一个std::vector来保存这些变量数据,例如:

struct coordinate2D
{
    int x;
    int y;
};

class Shape
{
    coordinate2D position; //the location on the shape
    std::vector<coordinate2D> points; // the coordinates of the vertices that make up this shape.
};

//elsewhere
std::vector<Shape> myShapes;
struct坐标2d
{
int x;
int-y;
};
阶级形态
{
坐标2D位置;//形状上的位置
std::vector points;//构成此形状的顶点的坐标。
};
//别处
std::向量myShapes;

使用
std::vector
。我既不认为在向量中存储指针是一个好主意(正确、安全地清理指针需要一些智慧),也不认为向新手提供建议。你至少应该使用智能指针。