如何在结构或类的向量中快速搜索具有特定值的对象? C

如果向量中有成千上万个结构或类对象,如何快速找到所需的对象?
例如:
做游戏,我需要最快的碰撞检测方法.每个图块都是一个结构,向量图中有很多图块,其值分别为:x和y.
所以基本上我会这样做:

For(i=0;i<end of vector list;i++)
{
 //searching if x= 100 and y =200
}

因此,也许有另一种方式,例如智能指针或更快地搜索特定对象的东西?

解决方法:

您应该将向量设置为sort,然后使用标准库算法,例如binary_searchlower_boundupper_bound.

与通过遍历整个向量或使用标准库算法find所给出的o(n)相比,上述方法将为您提供更好的一致性.

上一篇:如何修复碰撞响应中的圆和矩形重叠?


下一篇:python – 预期的哈希冲突数