gpt4 book ai didi

c++ - std::sort 没有仿函数

转载 作者:太空宇宙 更新时间:2023-11-04 14:36:41 24 4
gpt4 key购买 nike

我有一个关于 std::sort 算法的问题。这是我的测试代码:

struct MyTest
{
int m_first;
int m_second;

MyTest(int first = 0, int second = 0) : m_first(first), m_second(second)
{
}
};


int main(int argc,char *argv[])
{
std::vector<MyTest> myVec;
for(int i = 0; i < 10; ++i)
{
myVec.push_back(MyTest(i, i + 1));
}


//Sort the vector in descending order on m_first without using stand alone function or functors


return 0;

}

是否可以在不使用任何独立函数或仿函数的情况下对变量 m_first 上的 vector 进行排序?另外,请注意我没有使用 boost。

最佳答案

是的,只要要排序的范围内的值类型有 operator <定义了一个“严格的弱排序”,也就是说,它可以用来比较两个 MyTest实例正确。你可能会这样做:

class MyTest
{
...
bool operator <(const MyTest &rhs) const
{
return m_first<rhs.m_first;
}
};

关于c++ - std::sort 没有仿函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/933886/

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