在c ++中搜索和排序向量

时间:2016-11-22 20:15:01

标签: c++ sorting search vector

我正在为一个项目构建一个游戏(在c ++上),我想在向量中搜索Card对象,我希望它返回特定的索引,以便我能够删除它。另外我想按值排序作为卡片矢量的Hand。 问题是哪种Sort算法对于矢量是最佳的? (是vector类提供的sort()函数足够好吗?) 其次,哪种搜索算法最适合矢量? (我看到提供了binary_search函数,但它不返回索引,只有bool)。 谢谢!

1 个答案:

答案 0 :(得分:1)

您可以像这样使用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;