gpt4 book ai didi

c++ - CPP : Use map for multidimensionality?

转载 作者:太空狗 更新时间:2023-10-29 23:50:23 26 4
gpt4 key购买 nike

我想构建一个 3D 网格并使用包含节点的多维 map ,例如:

std::map<double, std::map<double, std::map<double, pathplanning::Node*> > >

三个 double 是网格中的 (x,y,z) 位置,Node 数据类型是一个简单的类,它封装了一些信息。

我是 cpp 社区的新手,我想问一下:这是一个好方法吗?或者我应该使用一些不同的数据结构?这就是我不使用多维数组的原因:位置可以是负数,数组索引不能。

最佳答案

我的意见是否定的。

使用 std::map(没有指针)。 vector3d 是任何以某种方式持有 3 双有序的结构。一种可能是

struct vector3d
{
double x ;
double y ;
double z ;
} ;

用一个

bool operator<(const vector3d lhs, const vector3d &rhs)
{
if (lhs.x != rhs.x)
return lhs.x < rhs.x ;
if (lhs.y != rhs.y)
return lhs.y < rhs.y ;
return lhs.z < rhs.z ;
}

关于c++ - CPP : Use map for multidimensionality?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31035683/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com