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