美文网首页
5.4.2.1类型函数

5.4.2.1类型函数

作者: Jianbaozi | 来源:发表于2019-10-07 17:13 被阅读0次
#include<iostream>
#include<vector>
#include<forward_list>
#include<iterator>
#include<algorithm>
using namespace std;
template<typename C>
    using Iterator_type=typename C::iterator;
template<typename Iter>
    using Iterator_category=typename std::iterator_traits<Iter>::iterator_category;
template<typename Ran>
void sort_helper(Ran beg,Ran end,random_access_iterator_tag){
    sort(beg,end);
}
template<typename For>
void sort_helper(For beg,For end,forward_iterator_tag){
    vector<int> v{beg,end};
    std::sort(v.begin(),v.end());
    std::copy(v.begin(),v.end(),beg);
}
template<typename C>
void sort(C& c){
    using Iter=Iterator_type<C>;
    sort_helper(c.begin(),c.end(),Iterator_category<Iter>{});
}
int main(){
    vector<int> vi{4,5,3,1,7};
    sort(vi);
    std::cout<<"Sort vector: "<<'\n';
    for(auto i:vi)
    std::cout<<i<<" ";
    forward_list<int> fi{6,4,2,8,12};
    sort(fi);
    cout<<"Sort forward_list: "<<'\n';
    for(auto i:fi)
    cout<<i<<" ";
    cout<<'\n';
    system("pause");
    return 0;
}

运行结果:

Sort vector:
1 3 4 5 7 
Sort forward_list:
2 4 6 8 12
请按任意键继续. . .

相关文章

  • 5.4.2.1类型函数

    运行结果:

  • Swift5-外行零基础入门_12-函数(下)

    函数 函数类型作为参数类型,函数类型作为返回类型,嵌套函数 函数类型 关于数据类型,我们之前已经介绍过了。现在来回...

  • TypeScript 函数

    TypeScript 函数 函数类型 为函数定义类型 使用这种方式,为函数定义返回的类型 书写函数类型 书写函数类...

  • 函数类型与闭包

    函数类型 函数类型定义:(参数类型1,参数类型2,……)->返回值类型 函数类型是一种引用类型,类似于函数指针。可...

  • Swift探索(七): 闭包

    一:函数类型 每个函数都有种特定的函数类型,函数的类型由函数的参数类型和返回类型组成。 上述代码中 (Double...

  • TypeScript学习-- 函数(1)

    TypeScript 函数(1) tsc greeter.ts 函数类型 为函数定义类型 书写完整函数类型 函数...

  • 四、函数进阶

    一. 高阶函数 参数类型包含函数类型或返回值类型为函数类型的函数为高阶函数。 常见的高阶函数 高阶函数的调用 二....

  • 每天学一点Swift----函数(二)

    三.函数类型 1. Swift的每个函数都有类型的,函数类型由函数的形参列表,返回值类型组成。 2.使用函数类型定...

  • Swift 学习笔记 - 函数与闭包

    函数 使用函数类型 (Using Function Types) 函数类型作为参数类型 (Function Typ...

  • 函数

    普通定义 为函数定义类型 完整的函数类型 函数类型包含两部分:参数类型返回值类型 推断类型 函数定义时,如果赋值语...

网友评论

      本文标题:5.4.2.1类型函数

      本文链接:https://www.haomeiwen.com/subject/llmuyctx.html