在C 中搜索和分类向量

Searching and Sorting vector in c++

本文关键字:分类 向量 搜索      更新时间:2023-10-16

我正在为一个项目构建一个游戏(在C 上),我想在向量中搜索card对象,我希望它返回特定的索引,以便我能够将其删除。此外,我想按值按值的纸牌向量进行分类。问题是哪种类型算法对于向量最佳?(向量类提供足够好的sort()函数吗?)第二,哪种搜索算法对于向量最佳?(我看到在上面提供了binary_search函数,但没有返回索引,只有bool)。谢谢!

您可以使用std :: lower_bound,例如:

auto it = std::lower_bound(v.begin(), v.end(), needle);
std::size_t index = ((it != v.end()) && (needle == *it)) ?
                    std::distance(v.begin(),it) :
                    (std::size_t) - 1;