QVector<QPoint> m_points 删除最后一个元素
时间: 2024-02-17 10:05:29 浏览: 22
要从QVector<QPoint>类型的m_points对象中删除最后一个元素,您可以使用QVector类的removeLast()函数。removeLast()函数会从向量的末尾删除一个元素。以下是示例代码:
```
QVector<QPoint> m_points; // 假设m_points为QVector<QPoint>类型的对象
m_points.removeLast(); // 删除m_points的最后一个元素
```
在上面的代码中,我们使用m_points.removeLast()函数删除了m_points的最后一个元素。请注意,如果m_points是空的,即它不包含任何元素,则removeLast()函数不会执行任何操作。
另外,如果您只想访问最后一个元素,而不是删除它,请使用QVector类的last()函数,该函数返回向量的最后一个元素的引用。以下是示例代码:
```
QPoint lastPoint = m_points.last(); // 获取m_points的最后一个元素
int x = lastPoint.x(); // 获取最后一个元素的x坐标
int y = lastPoint.y(); // 获取最后一个元素的y坐标
```
在上面的代码中,我们使用m_points.last()获取m_points的最后一个元素,并分别获取该元素的x和y坐标。请注意,如果m_points是空的,则last()函数返回一个默认构造的QPoint对象,其x和y坐标均为0。
相关问题
QVector<QPoint> m_points 最后一个元素
要获取QVector<QPoint>类型的m_points对象的最后一个元素,您可以使用QVector类的last()函数。last()函数返回QVector的最后一个元素的引用,您可以使用这个引用访问该元素的属性或调用其方法。以下是示例代码:
```
QVector<QPoint> m_points; // 假设m_points为QVector<QPoint>类型的对象
QPoint lastPoint = m_points.last(); // 获取m_points的最后一个元素
int x = lastPoint.x(); // 获取最后一个元素的x坐标
int y = lastPoint.y(); // 获取最后一个元素的y坐标
```
在上面的代码中,我们首先使用m_points.last()获取m_points的最后一个元素,然后分别获取该元素的x和y坐标。请注意,如果m_points是空的,即它不包含任何元素,则last()函数返回一个默认构造的QPoint对象,其x和y坐标均为0。
另外,如果您只需要访问最后一个元素的某个特定属性,例如x或y坐标,您也可以使用QVector类的at()函数。at()函数返回指定索引处的元素的引用,因此您可以使用它来访问任何元素的属性。以下是示例代码:
```
QPoint lastPoint = m_points.at(m_points.size() - 1); // 获取m_points的最后一个元素
int x = lastPoint.x(); // 获取最后一个元素的x坐标
int y = lastPoint.y(); // 获取最后一个元素的y坐标
```
在上面的代码中,我们使用m_points.size() - 1作为索引来获取m_points的最后一个元素,然后分别获取该元素的x和y坐标。
std::vectorcv::Point转换为QVector<QVector<QPoint>>
将`std::vector<cv::Point>`转换为`QVector<QVector<QPoint>>`的方法如下:
```c++
#include <QVector>
#include <QPoint>
#include <vector>
#include <opencv2/core/core.hpp>
QVector<QVector<QPoint>> vectorCvPointToQVectorQPoint(const std::vector<cv::Point>& points) {
QVector<QVector<QPoint>> qVectors;
QVector<QPoint> qPoints;
for (const cv::Point& point : points) {
qPoints.append(QPoint(point.x, point.y));
}
qVectors.append(qPoints);
return qVectors;
}
```
您可以通过调用 `vectorCvPointToQVectorQPoint` 函数并传入 `std::vector<cv::Point>` 类型的数据来获得`QVector<QVector<QPoint>>`类型的数据。函数将每个`cv::Point`转换为`QPoint`并将其添加到`QVector<QPoint>`中,然后将每个`QVector<QPoint>`添加到`QVector<QVector<QPoint>>`中。