如果向量中有成千上万个结构或类对象,如何快速找到所需的对象?
例如:
做游戏,我需要最快的碰撞检测方法.每个图块都是一个结构,向量图中有很多图块,其值分别为:x和y.
所以基本上我会这样做:
For(i=0;i<end of vector list;i++)
{
//searching if x= 100 and y =200
}
因此,也许有另一种方式,例如智能指针或更快地搜索特定对象的东西?
解决方法:
您应该将向量设置为sort,然后使用标准库算法,例如binary_search、lower_bound或upper_bound.
与通过遍历整个向量或使用标准库算法find所给出的o(n)相比,上述方法将为您提供更好的一致性.