c++ - 从 vector 中正确访问对象的属性并将其清除

标签 c++ vector

我不熟悉 C++ 中的 OO。

我一直在将 MyPoint 类的实例推送到

vector <MyPoint> trianglePoints;

像这样:

trianglePoints.push_back(MyPoint(x,y));

这是我对 MyPoint 的定义:

class MyPoint {

public:
    float x; 
    float y;

    MyPoint(float x, float y) //constructor
    {
        this->x=x;
        this->y=y;

    }

}; //end

将三个点插入 vector 后,我调用一个函数来渲染三角形,然后执行以下操作:

trianglePoints.clear();

问题:

a) 如何从 vector 中获取三个 x,y 坐标?我想将每个存储到自己的 int xi,yi 中以呈现它们。

b) 即使我没有为 MyPoint 类定义析构函数,也可以在 vector 上调用 clear() 吗?

最佳答案

一)

trianglePoints[0].x
trianglePoints[0].y
trianglePoints[1].x
trianglePoints[1].y
trianglePoints[2].x
trianglePoints[2].y

二)

是的,该类使用默认析构函数。

关于c++ - 从 vector 中正确访问对象的属性并将其清除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3947127/

相关文章:

c++ - 窗口上 C/C++ 的自动记录器

c++ - 为 std::shared_ptr 指定一个删除器,它适用于特定类型或其派生类型的所有对象

c++ - 从原始数据就地创建 std::vector

c++ - 强制 std::vector 释放其内存?

c++ - 不允许嵌套函数,但为什么允许嵌套函数原型(prototype)? [C++]

添加 g++ -std= 标志时,C++ 打印到终端的速度要慢得多?

MATLAB - 将向量转换为单位向量

c++ - 给定起点和终点以及距离,计算沿线的点

c++ - C++ 中 vector 的平方根和平方加倍

c++ - boost::asio,线程和同步