gpt4 book ai didi

c++ - 如何对 vector 进行排序?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:15:57 25 4
gpt4 key购买 nike

#include <algorithm>

bool comparisonFunc(char* c1, char* c2)
{
return strcmp(c1, c2) ? 0 : 1;
}

vector<char*> myVec;
vector<char*>::iterator itr;
sort(myVec.begin(), myVec.end(), comparisonFunc)

这是正确的还是有更好的方法?

最佳答案

std::sort 需要一个“小于”谓词。您应该像这样实现您的 comparisonFunc():

bool comparisonFunc(const char *c1, const char *c2)
{
return strcmp(c1, c2) < 0;
}

(注意 const;它们很重要。)

您当前的实现可能无法正常工作,因为您只是在值是否相等时返回。这些信息不足以进行排序 - 您需要知道哪个较小,哪个较大(当然,除非值相等)。

关于c++ - 如何对 vector <char*> 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7856514/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com