提供一个std::vector 示例代码,用于保存空间三维的double类型的坐标点,写入和读取方式
时间: 2024-09-10 10:12:50 浏览: 50
下面是一个使用`std::vector`保存三维空间中`double`类型坐标点的示例代码。这个例子中,我们定义了一个名为`Point3D`的结构体来表示三维空间中的一个点,然后使用`std::vector`来存储这些点。同时,我们将展示如何向这个向量中添加新的点以及如何读取向量中的点。
```cpp
#include <iostream>
#include <vector>
// 定义一个三维点的结构体
struct Point3D {
double x;
double y;
double z;
// 构造函数
Point3D(double x, double y, double z) : x(x), y(y), z(z) {}
};
int main() {
// 创建一个存储Point3D对象的vector
std::vector<Point3D> points;
// 写入点到vector中
points.emplace_back(1.0, 2.0, 3.0);
points.emplace_back(4.0, 5.0, 6.0);
points.emplace_back(7.0, 8.0, 9.0);
// 读取vector中的点并打印
for (const auto& point : points) {
std::cout << "Point: (" << point.x << ", " << point.y << ", " << point.z << ")" << std::endl;
}
return 0;
}
```
这段代码首先包含了必要的头文件`<iostream>`和`<vector>`。然后定义了一个`Point3D`结构体,包含三个`double`类型的数据成员。在`main`函数中,我们声明了一个`std::vector<Point3D>`类型的变量`points`,并使用`emplace_back`方法添加了三个三维坐标点到这个向量中。
读取向量中的点是通过一个范围for循环完成的,循环体中我们打印出了每个点的坐标。`emplace_back`是一个非常有用的函数,它可以就地构造元素,避免不必要的拷贝或移动操作。
阅读全文