当前位置: 首页 > wzjs >正文

做建材营销型网站网站搜索优化官网

做建材营销型网站,网站搜索优化官网,公司做网站哪个好,网站建设后端前端在 C 里,std::sort 函数的第三个参数是一个比较函数或者可调用对象,用于定义元素的排序规则。以下为你详细介绍几种常见的传入形式: 1. 普通函数 普通函数可以当作比较函数传入 std::sort。此函数要接收两个同类型的参数,并且返…

在 C++ 里,std::sort 函数的第三个参数是一个比较函数或者可调用对象,用于定义元素的排序规则。以下为你详细介绍几种常见的传入形式:

1. 普通函数

普通函数可以当作比较函数传入 std::sort。此函数要接收两个同类型的参数,并且返回一个布尔值,用于表明第一个参数是否应该排在第二个参数之前。

#include <iostream>
#include <vector>
#include <algorithm>// 普通比较函数
bool compare(int a, int b) {return a < b;
}int main() {std::vector<int> numbers = {5, 2, 8, 1, 9};std::sort(numbers.begin(), numbers.end(), compare);for (int num : numbers) {std::cout << num << " ";}std::cout << std::endl;return 0;
}

2. Lambda 表达式

Lambda 表达式是一种匿名函数,能方便地在 std::sort 中定义比较规则。

#include <iostream>
#include <vector>
#include <algorithm>int main() {std::vector<int> numbers = {5, 2, 8, 1, 9};std::sort(numbers.begin(), numbers.end(), [](int a, int b) {return a < b;});for (int num : numbers) {std::cout << num << " ";}std::cout << std::endl;return 0;
}

3. 函数对象(Functor)

函数对象是实现了 operator() 的类或者结构体实例。借助函数对象,能够在比较过程中保存状态。

#include <iostream>
#include <vector>
#include <algorithm>// 函数对象 升序 (a>b为降序)
struct Compare {bool operator()(int a, int b) const {return a < b;}
};int main() {std::vector<int> numbers = {5, 2, 8, 1, 9};// Compare comp;// std::sort(numbers.begin(), numbers.end(), comp);std::sort(numbers.begin(), numbers.end(), Compare());for (int num : numbers) {std::cout << num << " ";}std::cout << std::endl;return 0;
}

4. 类的静态成员函数

类的静态成员函数不依赖于类的实例,没有 this 指针,能够直接作为比较函数传入 std::sort

#include <iostream>
#include <vector>
#include <algorithm>class MyClass {
public:static bool compare(int a, int b) {return a < b;}
};int main() {std::vector<int> numbers = {5, 2, 8, 1, 9};std::sort(numbers.begin(), numbers.end(), MyClass::compare);for (int num : numbers) {std::cout << num << " ";}std::cout << std::endl;return 0;
}

注意事项

  • 比较函数或者可调用对象必须满足严格弱序的要求,即对于任意元素 abc,需要满足以下条件:
    • compare(a, a) 始终为 false
    • compare(a, b)true,则 compare(b, a)false
    • compare(a, b)truecompare(b, c)true,则 compare(a, c)true
    • !compare(a, b)!compare(b, a),则对于任意 ccompare(a, c)compare(b, c) 具有相同的结果。

这些规则保证了排序的正确性和稳定性。

http://www.dtcms.com/wzjs/407956.html

相关文章:

  • 哪里有做网站平台谷歌seo网站排名优化
  • 人妖和人妖做的小视频网站搜索引擎是软件还是网站
  • 网站数据模板如何自建网站
  • 做一个宣传网站要多少钱网络广告投放
  • 百度百科网站怎么做百度指数指的是什么
  • 昆明网站建设哪家强网址推广
  • 建设厅网站用户名和密码怎么做好网站方式推广
  • 西安手机网站建设苏州seo营销
  • 自己做交友网站网站宣传和推广的方法有哪些
  • wordpress开发cms系统英文seo是什么
  • 打开网站是iis7seo技术培训茂名
  • 苏州乡村旅游网站建设策划书seo学徒招聘
  • 建设论坛网站需要多少钱百度热榜排行
  • 网站上的图片做多大网络营销的六大特征
  • 做国外网站建设域名权重是什么意思
  • 不属于web2.0网站开发东莞网站建设推广公司
  • 如何做网站子页百度人工服务24小时电话
  • 现在网站建设用dw哪个版本好职业技术培训
  • 买模板做网站百度网站名称
  • 博客可以做网站收录用的吗google关键词规划师
  • 设计公司网站欣赏软文广告营销
  • 视频类网站建设的成果东营网站建设哪家更好
  • 科凡官网seo软件推广哪个好
  • 广州市酒店网站设计南阳本地网络推广优化公司
  • 图片站手机网站怎么做yahoo引擎入口
  • 服装网站建设规划方案网站优化设计公司
  • 网站建设_seo技术支持外贸网站推广的方法
  • 山东网站建设都有那些国内十大搜索引擎排名
  • 做粉丝网站坚持
  • 没有数据怎么做网站在线查询网站收录