问答

C++模板中,函数的具体类型是什么?

作者:admin 2021-04-22 我要评论

函数定义中的Compare是一个函数的引用 如果需要指明模板参数,应该是什么?简单点说,上图红圈处应该填什么? 这是做参数的函数 PS:版本是C++98 ### bool(int, i...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

image
函数定义中的Compare是一个函数的引用

image
如果需要指明模板参数,应该是什么?简单点说,上图红圈处应该填什么?

image
这是做参数的函数

PS:版本是C++98

###

bool(int, int) 如果我没记错的话。。。

###
linked_list<int>* merge_two_linkedlists_asc<int, bool (*)(int, int)>(linked_list<int>* lists1, linked_list<int>* lists2, compare_int)
  1. T 可能是各种各样的自定义类型,因此需要调用者提供链表合并时元素T的比较方式。
  2. Compare &_cmp 一个可调用对象,可能的类型:

    • 函数原型: bool cmp(int, int) {}
    • 函数指针: bool (*cmp)(int, int);
    • lambda 表达式: auto cmp = &->bool{...}
    • 重载了()运算符的类: class cmp { bool operator(int, int){...} };
    • std::bind
    • std::function
  3. 使用”引用“是避免 _cmp 实参是非函数、指针而是闭包、自定义对象的低效拷贝。

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 求助!Mysql workbench connections出

    求助!Mysql workbench connections出

  • c++ 的dll 转golang可以调用

    c++ 的dll 转golang可以调用

  • c++的 new int{10}  和 new int(10) 有

    c++的 new int{10} 和 new int(10) 有

  • Grafana MySQL为数据源时, 折线图无法

    Grafana MySQL为数据源时, 折线图无法

腾讯云代理商
海外云服务器