gps点的表示

Representation of the gps point

本文关键字:表示 gps      更新时间:2023-10-16

我有一组GPS点,记录如下:

point_label    lat       lon      H
FraEur3        N35.3575  E12.4617 207.39

我正在考虑点标签的合适数据表示。

什么更好:

class GPSPoint
{
   char * label;
   double lat, lon, h;
};

class GPSPoint
{
   char label[255];
   double lat, lon, h;
};

第一个选项的内存消耗较少,但我必须编写复制构造函数、operator=和析构函数等。

第二个选项更容易编码,但内存消耗更大。

你推荐哪种选择?我不想使用std::string。。。

class GPSPoint
{
   vector<char> label;
   double lat, lon, h;
}

它不是字符串,并且是动态可分配的。

好吧,std::string解决方案,我无法想象你为什么要避免它。

不过,老实说,我根本不会有标签。让你的点类只包含坐标;你可以处理这种逻辑之外的标签。

在第一种情况下,您需要在其他地方为字符串内容分配内存。与std::string相比,绝对没有理由更喜欢这个。

您应该能够找到关于字符串最大长度的文档,以减少固定字符数组的大小。

我当然希望你有一个充分的理由来解雇std::string。