有没有比使用迭代器更快地在向量内找到具有某些参数的指定值的对象并在找到时停止的方法?我有矢量图
在哪里
class Simple{
public:
string name;
int id;
}
有没有比使用迭代器更快地在向量内找到具有某些参数的指定值的对象并在找到时停止的方法?我有矢量图
在哪里
class Simple{
public:
string name;
int id;
}
在不了解向量(排序或未排序等)的情况下,您可以获得的最快速度是线性时间(很像使用迭代器)。
但是你可以用std::find_if
它来美化代码——尽管它仍然会在线性时间内运行。
如果您多次查询容器,您可能需要对其进行排序 ( O(n*log(n))
),然后使用二分搜索 ( O(log(n))
)。但这只有在查询数量与元素数量相当的情况下才有意义。
std::vector<Simple>
为std::map<int, std::string>
.