如何正确地从此类结构中删除最后一项,并将下一项写入最开始,以便后续 iD 增加 1。
#ifndef FOOTPRINTCURRENT_H
#define FOOTPRINTCURRENT_H
struct FootPrintCurrentData
{
short iD;
double lng;
double lat;
double alt;
};
#endif // FOOTPRINTCURRENT_H
主文件
std::vector<FootPrintCurrentData> footPrintCurrentData;
如果大于 39,则尝试删除最后一项
for(int i = 0; i < footPrintCurrentData.size(); i++)
{
if(i > 39)
{
footPrintCurrentData.erase(footPrintCurrentData.begin()+i, footPrintCurrentData.end());
}
}
卸载后,程序就会崩溃。
但是如何从头开始写入并将所有内容移1,即我不明白如何排序。
首先从第 40 个元素删除到末尾,然后在一个循环中再次从第 41 个到末尾删除,从第 42 个到末尾。可怜的矢量...
您可以删除不在循环中,也可以将条件重写为
如果您只需要在某个位置后删除,则不需要循环。可以通过插入在开头插入。