c++ - 我将如何创建一个允许我定义具有多个值的多个对象的结构?

标签 c++ structure

我需要创建一个结构,允许我在 3-D 坐标系中定义 x 个点(点的数量在运行时发生变化)。每个点都有一个 x、y 和 z 值。到目前为止,我有一个像这样的基本结构,但我需要它能够有多个点,每个点都有自己的值。

struct point {
        int point_num;
        double x;
        double y;
        double z;
};

谢谢!

最佳答案

如果point_num是一个不连续但唯一的标识符,您可以使用 std::map<int, point>并从结构中删除标识符。这样你就可以使用索引进行 O(log(N)) 查找。

如果point_num值是唯一且连续的,请使用 std::vector<point> - 同样,id 字段是多余的,因为 vector 中的位置为您提供了索引值。

阅读一些关于 STL 的内容,尤其是 containers ,在你走得更远之前。

关于c++ - 我将如何创建一个允许我定义具有多个值的多个对象的结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6498479/

相关文章:

C++ 重载相等运算符。我应该编写我的函数来接受通过引用或值传递的参数吗?

c++ - 修改 Boost Multi-Index 项 : modify vs mutable 的非索引字段的最佳方法

c++ - 包含 unordered_map 作为成员的结构的 sizeof()

c++ - 在结构 C++ 之间传递数组

c++ - 如何调用具有结构的函数 (C++)

C++ 项目 : Artifact-Name dependant "include" directory population using CMake (build-time)

c++ - 字符串 move 构造函数如何工作?

c++ - 如果对象的构造函数是noexcept,placement new(expression)可以抛出吗?

c++ - 在函数 C++ 之间传递结构

c - 如何将结构视为内存位置并使用指针分别访问元素