我有三个std::vectors
,每个包含不同的数据类型。
我需要做的是根据第一个向量中的索引项的值,从每个向量中删除相同的索引项。
在下面的代码中,如果localMap_points[i].m_counter
的值大于30,则从所有三个向量中删除索引为[i]
的项。(对于其他向量,localMap_desc
包含8个项,因此在该向量中添加了x 8
)
这个方法完美地运行,但速度很慢。有没有更快的方法?
我有:
for (int i = 0; i < localMap_points.size(); i++)
{
if (localMap_points[i].m_counter > 30)
{
localMap_kp.erase(localMap_kp.begin() + i, localMap_kp.begin() + i + 1); // Deleting from n element to n element
localMap_desc.erase(localMap_desc.begin() + (i * 8), localMap_desc.begin() + (i * 8) + 8); // Deleting from n element to n element X 8
localMap_points.erase(localMap_points.begin() + i, localMap_points.begin() + i + 1); // Deleting from n element to n element
}
}
pop_back()
即可。 - Dan M.