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

网站flash工作压力大怎样缓解焦虑情绪

网站flash,工作压力大怎样缓解焦虑情绪,介绍做网站的标题,普陀大型网站建设C 遍历可变参数的几种方法一、第一种遍历方式二、 获取可变参数的长度三、递归遍历可变参数四、可变参数求和先写一个最简单的可变参数函数 template<typename ...T> void TestFunc(T&...Param) {}我们应该如何遍历传入的可变参数呢&#xff1f; 介绍如下几种遍历方…

C++ 遍历可变参数的几种方法

  • 一、第一种遍历方式
  • 二、 获取可变参数的长度
  • 三、递归遍历可变参数
  • 四、可变参数求和


先写一个最简单的可变参数函数

template<typename ...T>
void TestFunc(T&...Param)
{}

我们应该如何遍历传入的可变参数呢?
介绍如下几种遍历方式

一、第一种遍历方式

  • (PrintValue1(Param), 0) 是一个逗号表达式。逗号表达式会依次执行其前后的表达式,并返回最后一个表达式的值。这里先调用PrintValue1(Param)打印参数,然后返回整数0作为整个逗号表达式的结果。
  • 后面的…表示将逗号表达式按照参数包Param展开。假设有三个参数,则展开为:
    int arr[] = { (PrintValue1(Param1), 0), (PrintValue1(Param2), 0), (PrintValue1(Param3), 0) };
  • 这样,数组arr的元素就是三个0(即{0,0,0}),但在这个过程里,每个参数都被PrintValue1打印了一次。
template<typename T>
void PrintValue1(T& Value)
{std::cout << Value << std::endl;
}template<typename ...T>
void TestFunc(T&...Param)
{int arr[] = { (PrintValue1(Param), 0)... };
}

也可以换一种方式书写

template<typename T>
int PrintValue2(T& Value)
{return Value;
}template<typename ...T>
void TestFunc(T&...Param)
{int arr[] = { PrintValue2(Param)... };for (size_t i = 0; i < sizeof(arr) / sizeof(int); i++){std::cout << arr[i] << std::endl;}
}

二、 获取可变参数的长度

没什么好说的固定写法而已

template<typename ...T>
void TestFunc(T&...Param)
{int num = sizeof...(Param);std::cout << num << std::endl;
}

三、递归遍历可变参数

运用函数参数的特性,实现递归,注意递归到最后一个值时需要加上对应的函数去调用不然会报错

template<typename T>
void TestFunc(T& Value)
{std::cout << "Run1" << std::endl;std::cout << Value << std::endl;
}template<typename T,typename ...ParamValue>
void TestFunc(T& Head, ParamValue& ...Param)
{std::cout << "Run2" << std::endl;std::cout << Head << std::endl;TestFunc(Param...);
}

调用

int main()
{int value1 = 1;int value2 = 2;int value3 = 3;int value4 = 4;int value5 = 5;TestFunc(value1, value2, value3, value4, value5);system("pause");return 0;
}

输出
在这里插入图片描述

四、可变参数求和

算是上面递归遍历的一个使用案例

template<typename ParamTypes>
ParamTypes& TestFunc(ParamTypes& Param)
{std::cout << "Run 1" << std::endl;return Param;
}template<class T,typename ... ParamTypes>
T TestFunc(T& Head, ParamTypes &...Param)
{std::cout << "Run 2" << std::endl;return Head + TestFunc<T>(Param...);
}

调用

int main()
{int value1 = 1;int value2 = 2;int value3 = 3;int value4 = 4;int value5 = 5;int value = TestFunc(value1, value2, value3, value4, value5);std::cout << value << std::endl;system("pause");return 0;
}

输出
在这里插入图片描述

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

相关文章:

  • 领优惠卷的网站怎么做wordpress 后台 logo
  • 外贸推广的网站海外营销方案
  • 云盘网站建设做外包胡it网站
  • 网站建设案例包括哪些网站建设工资郑州
  • 摄影网站策划书做资源网站需要什么软件
  • 视频网站 外链小程序源码怎么导入
  • 网站顶部怎么做新浪链接郑州网站建设网站开发
  • 阜宁县住房和城乡建设局网站桂林两江四湖门票多少钱
  • 如何建设网站挣钱大丰市市城乡建设局网站
  • 婚恋网站 备案条件网站全局变量
  • 苏州沧浪区做网站企业所得税税率多少
  • 名校长工作室网站建设福田蒙派克价格及图片
  • c2c的网站名称和网址网页微信登录不了提示为了安全考虑
  • 怎样说服老板做网站3d房子模型设计软件
  • 江西威乐建设集团有限公司企业网站虚拟主机免费领取
  • 自己做的网站手机不能看微信小程序打不开什么原因
  • 尚品中国多年专注于高端网站建设无障碍环境建设 网站
  • 镇江市建设工程安全监督站网站wordpress仿微信订阅主题
  • 网站域名证书佛山建筑设计院有限公司官网
  • 可以接单做网站的软件开发网站能赚多少钱
  • 怎么查看网站空间wordpress 文章样式
  • 重庆商城网站建设地址百度集团网站建设方案
  • 免费模板建站网站校园旅游网站建设方案策划书
  • 提供免费服务器的网站会刊彩页设计
  • 网站在百度上搜索不到网站设置手机版
  • 网站开发外包报价单云南网站建设首选公司
  • 怎么做整人点不完的网站学校网站建设实训总结
  • 私人pk赛车网站怎么做oa办公平台
  • 成都个人网站建设网站开发 自学
  • 免费地方门户网站源码怎么用电脑做网站服务器吗