std::list::sort(_Pr3 _Pred)需要提供一个函数对象(仿函数)作为参数。构造函数有多种方式,lambda表达式算是最复合潮流的一种。 比如std::list里面存放的是某个large对象的指针,使用sort()不能满足需求。那可以这样来写: 使用匿名lambda表达式: std::list<LargeObject*> listObjects; listObjects.sort([]=(LargeO...
std::list::sort(_Pr3 _Pred)需要提供一个函数对象(仿函数)作为参数。构造函数有多种方式,lambda表达式算是最复合潮流的一种。 比如std::list里面存放的是某个large对象的指针,使用sort()不能满足需求。那可以这样来写: 使用匿名lambda表达式: std::list<LargeObject*> listObjects; listObjects.sort([]=(LargeO...
std::list的sort成员函数默认使用元素的<运算符进行排序。如果元素类型没有定义<运算符或需要自定义排序规则,可以提供一个比较函数或lambda表达式作为参数。 3. 如果需要自定义排序规则,编写比较函数 假设我们有一个std::list<int>,但我们想按照降序而不是默认的升序来排序。我们可以编写一个比较函数...
降序:sort(std::greater<data-type>()) List7.sort(std::greater<int>());//降序List7.sort(std::less<int>());//升序 逆序:reverse() 移除重复元素:unique() 注意:不相邻的重复元素不会被删除 合并:merge 前提:两个已排序的list,且必须按升序排序(list::sort()默认升序排序) 注意:归并完之后,x会...
list.sort(); // 默认升序 std::cout << "ascending: " << list << "\n"; list.sort(std::greater<int>()); // 降序 std::cout << "descending: " << list << "\n"; // 类,要重载 < // 或者,传参 lambda 表达式 } } 分类: C++代码片段 好文要顶 关注我 收藏该文 微信分享 ...