使用某个参数的指定值比使用迭代器更快地找到向量内的对象并在找到时停止吗?我有载体
,其中
class Simple{
public:
string name;
int id;
}
答案 0 :(得分:10)
在不知道任何关于向量的情况下(排序与否等),你可以获得的最快线性时间(就像使用迭代器一样)。
但您可以使用std::find_if
来美化代码 - 尽管它仍然会以线性时间运行。
如果您多次查询容器,可能需要对其进行排序(O(n*log(n))
),然后使用二进制搜索(O(log(n))
)。但是,如果查询数量与元素数量相当,则只需支付费用。
答案 1 :(得分:1)
std::vector<Simple>
替换为std::map<int, std::string>
。