我有一个包含机器人坐标的文件,其中包含机器人的X,Y和旋转度。
0.2 0.3 150
1.7 3.2 -30
.....
8.7 5.2 -120
我还有一个文件,其中包含来自机器人传感器的不同读数,看起来像
1.5 1.4 1.0. 1.5
4.5 3.4 8.3. 1.1
....
3.5 7.3 1.2. 12.5
首先,我读取机器人的坐标,然后读取其传感器值并进行一些计算。有没有必要为机器人姿势创建一个可以保留变量的类?
double x,y; int degrees;
因为更容易制作一个double [linesInFile] [3]数组,它将所有值保持为double类型,以创建位置类并创建位置对象数组。 如果我不知道文件中有多少坐标,并且在读完整个文件之前我不知道数组的大小,那么创建该数组的最佳方法是什么?它们可以添加动态,还是应该首先读取文件中有多少行然后创建新数组?
答案 0 :(得分:1)
使用存储在std :: vector中的结构。
struct Coord {
double x;
double y;
double deg;
};
std::vector<Coord> myCoords;
现在您可以使用push_back添加元素。 std :: vector将为您处理内存管理。
答案 1 :(得分:1)
是的,你可以创建一个类。
如果您事先不知道数组的大小,只需使用std::vector
,并在从文件中读取信息时将每个元素添加到向量中。
读取文件两次,一次确定行数,第二次是真实的,就是这样......上个世纪,当我们所有人都是C.幸运的是,我们现在有了C ++,{{1}和许多其他强大的类和模板,使得完全没有必要经历这样的麻烦。
答案 2 :(得分:0)
您可以使用<input type="text" onfocus="if(this.value == 'search') {this.value=''}" onblur="if(this.value == ''){this.value ='search'}">
和重载的std::cin
阅读。这取决于你的代码,但最简单的方法是创建一个包含必要变量的简单结构。
对于动态分配的数组,请使用operator >>
。它是一个模板容器,可以与您的结构一起使用。
std::vector
答案 3 :(得分:0)
如果你不想让它变得动态,只需阅读文件并记录行数。
动态,使用对象矢量。创建一个
struct Movement {
double x,y;
int degrees;
};
在以下内容中使用它:
vector<Movement> myMovement;
然后你可以将每一行添加为Movement的对象。