载体在Arduino

我正在Arduino上制作一个“航点”的vector图。 每个航点都是一个物体。 Arduino显然需要为航点导航存储多个航点。 但不是将这些航点存储在标准的预编程数组中,用户将需要能够添加,移除航点并移动它们。 不幸的是,Arduino不提供一个vectortypes作为内置库。

我目前正在考虑两个select:

  1. 像C ++“vector”的对象容器? 有人发布了一个通用库。 它不包含任何索引删除或移动操作。 但它确实包含一些内存pipe理策略。

  2. 过去我使用过malloc ,dealloc, calloc 。 但我根本不喜欢这个select,特别是在课堂上。 但是这是在我的senario更好的select?

哪一条是更好的路?

Arduino的标准C ++可能是一个选项。 它可以让你在Arduino中使用STL 向量

听起来就像你想要实现一个简单的链接列表。 一个链表允许你移动对象(在你的情况下,航点),而不用与C ++向量相关的开销。

这是GitHub上的一个实现。

arduino的内存有限,所以你需要知道你将允许多less个航点。 在这种情况下,保存已分配航点的存储器指针(地址)的简单数组将提供所需的顺序/顺序。 保持一个arrays插槽作为工作区域将允许移动路点(重新sorting)。

您也可以拥有固定的航路点结构数组,并在航点正在使用或不使用的情况下在结构中包含一个variables。 在添加航点时,您必须遍历数组,直到find未使用的结构。