• 2017.2.18


    1.函数包装器

    1.设计通用的函数执行接口,可以设置计数(函数执行次数)和关卡
    2.函数包装器依赖于函数模板,实现通用泛型

    3.函数代码可以内嵌在函数中

    最基本模板:

      1 //函数包装器, T数据类型, F是函数
      2 template<typename T,typename F>
      3 T run(T v, F f)
      4 {
      5 	static int count = 0;
      6 	count++;//计数器
      7 	std::cout << "run  一个参数的包装器 执行" << count << "" << std::endl;
      8 	if (count > 1)
      9 	{
     10 		T  vx(0);
     11 		return  vx;
     12 	}
     13 	return f(v);//函数传入参数
     14 }
     15 int  cheng(int a, int b)
     16 {
     17 	return a*b;
     18 }
     19 
     20 int  main()
     21 {
     22         function<double(double)> fun1 = [](double u)
     23 	{
     24 		return u * 2;
     25 	};
     26 	function<double(double)> fun2 = [](double u)
     27 	{
     28 		return u*u;
     29 	};
     30 	function<int(int, int)> fun3 = [](int u1,int u2)
     31 	{
     32 		return u1 + u2;
     33 	};
     34 	function<int(int, int)> fun4 = cheng; //fun4函数指针
     35 }

    2.函数模板的覆盖

    3.类型转换

    static_cast<需要转换的数据类型>(要转换的数据)       相当于c中的强制转换,可以用于基础类型,在编译期进行

    const_cast<需要转换的数据类型>(要转换的数据)           去const,但是const并没有被改变

    reinterpret_cast<需要转换的数据类型>(要转换的数据)  

    dynamic_cast_cast<需要转换的数据类型>(要转换的数据)  只接受基于类对象的指针和引用的类型转换

    4.

  • 相关阅读:
    HDU 5087 (线性DP+次大LIS)
    POJ 1064 (二分)
    Codeforces 176B (线性DP+字符串)
    POJ 3352 (边双连通分量)
    Codeforces 55D (数位DP+离散化+数论)
    POJ 2117 (割点+连通分量)
    POJ 1523 (割点+连通分量)
    POJ 3661 (线性DP)
    POJ 2955 (区间DP)
    LightOJ 1422 (区间DP)
  • 原文地址:https://www.cnblogs.com/acliang/p/6413617.html
Copyright © 2020-2023  润新知