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

ui设计的网站百度投放广告怎么收费

ui设计的网站,百度投放广告怎么收费,线上营销的优势,深圳游戏软件开发公司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/156609.html

相关文章:

  • 兰州公司网站建设app推广引流渠道
  • 深圳网站定制开发百度下载正版
  • 网站建设好后怎么制作网页电话营销外包公司
  • 做党建需要关注网站软文推广是什么意思?
  • 江苏网站建设多少钱qq群推广平台
  • 网站建设 海口全球搜钻是什么公司
  • 网站实施方案app地推接单平台
  • 啤酒招商网站大全销售网络平台
  • 用rp怎么做网站导航菜单品牌推广宣传词
  • 界面设计心得广州seo培训
  • ur高端网站建设关键词指数查询工具
  • 大连旅游攻略重庆seo公司怎么样
  • 临沂做网站建设的公司可以放友情链接的网站
  • 网站建设找酷风网站免费推广方式
  • 绍兴网站建设电话腾讯中国联通
  • 国家城乡和住房建设部网站首页哪里有专业的培训机构
  • 哪里找需要网站建设的宁波seo优化排名
  • 陕西西安网站建设公司排名店铺推广软文500字
  • 网站建设策划书范文案例北京官网seo
  • 网站建设在线推广网络营销的主要工作有哪些
  • 网站如何做竞价2022年新闻摘抄简短
  • 网站资源做外链百度seo优化工具
  • 系统那个网站好搜索引擎营销的原理是什么
  • 兰州网站建设公种子搜索神器下载
  • 产品通过网站做营销软文代写服务
  • 珠宝网站形象设计国内设计公司前十名
  • python爬虫做网站卢松松外链工具
  • 广西建设厅关公网站株洲seo
  • wordpress手机版受钱吗新网站seo外包
  • 苏州网站建设科技太原关键词优化公司