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

线上网站开发系统流程平台网址怎么查询

线上网站开发系统流程,平台网址怎么查询,0基础学编程先学什么,自己搭建环境建设网站C11的新特性可变参数模板能够创建可以接受可变参数的函数模板和类模板#xff0c;相比C98/03#xff0c;类模版和函数模版中只能含固定数量的模版参数#xff0c;可变模版参数无疑是一个巨大的改进。然而由于可变模版参数比较抽象#xff0c;使用起来需要一定的技巧#x…C11的新特性可变参数模板能够创建可以接受可变参数的函数模板和类模板相比C98/03类模版和函数模版中只能含固定数量的模版参数可变模版参数无疑是一个巨大的改进。然而由于可变模版参数比较抽象使用起来需要一定的技巧所以这块还是比较晦涩的。 1. 函数模板 下面就是一个基本可变参数的函数模板Args是一个模板参数包args是一个函数形参参数包声明一个参数包Args...args这个参数包中可以包含0到任意个模板参数。 template class ...Args void ShowList(Args... args) {}上面的参数args前面有省略号所以它就是一个可变模版参数我们把带省略号的参数称为“参数 包”它里面包含了0到NN0个模版参数。我们无法直接获取参数包args中的每个参数的 只能通过展开参数包的方式来获取参数包中的每个参数这是使用可变模版参数的一个主要特点也是最大的难点即如何展开可变模版参数。由于语法不支持使用args[i]这样方式获取可变参数所以我们的用一些奇招来一一获取参数包的值。 2.递归函数方式展开参数包 // 递归终止函数 templateclass T void ShowList(T value) {cout value endl;} // 展开函数 templateclass T,class ...Args void ShowList(T value,Args ... args) {cout value ;ShowList(args...); } int main() {ShowList(1);ShowList(1,a);ShowList(1,a,abcde);return 0; } 3.逗号表达式展开参数包 templateclass T void PrintArg(T value) {cout value ; } // 展开函数 templateclass ...Args void ShowList(Args ... args) {int arr[] { (PrintArg(args),0)... };cout endl; } int main() {ShowList(1);ShowList(1,a);ShowList(1,a,abcde);return 0; } 这种展开参数包的方式不需要通过递归终止函数是直接在函数体中展开的, PrintArg 不是一个递归终止函数只是一个处理参数包中每一个参数的函数。这种就地展开参数包的方式实现的关键是逗号表达式。我们知道逗号表达式会按顺序执行逗号前面的表达式。 ShowList函数中的逗号表达式(PrintArg(args), 0)也是按照这个执行顺序先执行 PrintArg(args)再得到逗号表达式的结果0。同时还用到了C11的另外一个特性——初始化列表通过初始化列表来初始化一个变长数组, {(PrintArg(args), 0)...}将会展开成((PrintArg(arg1),0), (PrintArg(arg2),0), (PrintArg(arg3),0), etc... )最终会创建一个元素值都为0的数组int arr[sizeof...(Args)]。由于是逗号表达式在创建数组的过程中会先执行逗号表达式前面的部分printarg(args) 打印出参数也就是说在构造int数组的过程中就将参数包展开了这个数组的目的纯粹是为了在数组构造的过程展开参数包 4.STL容器中的empalce相关接口函数 template class... Args void emplace_back (Args... args); 首先我们看到的emplace系列的接口支持模板的可变参数并且万能引用。 int main() {// emplace_back支持可变参数拿到构建pair对象的参数后自己去创建对象listpairstring, int l;l.emplace_back(make_pair( aaa, 1 ));l.emplace_back(bbb, 2);// push_back支持初始化列表传参l.push_back(make_pair(ccc, 3));l.push_back({ ddd,4 });return 0; } 那么在这里我们可以看到除了用法上似乎和push_back没什么太大的区别实际上emplace_back优势更大。 减少不必要的复制或移动操作 emplace_back函数利用完美转发技术直接在容器内部构造元素从而避免了创建临时对象后再进行复制或移动的开销。这对于构造成本较高的对象尤为重要因为它可以减少额外的资源消耗和性能损失.
http://www.w-s-a.com/news/978872/

相关文章:

  • 电商网站后台报价营销软文小短文
  • 网站建设项目售后服务承诺公司名称邮箱大全
  • 湖南网站建设哪里好做ppt的网站叫什么名字
  • 容城县建设银行网站电子商务网站建设子项目
  • 网站管理助手3.0做淘宝网站用什么软件做
  • 贵阳做网站的公司wordpress趣味插件
  • 自己设置免费网站设计平台南京哪里有做公司网站的
  • 建设公司内网网站的意义自助建站网站的宣传手册
  • 手机建设中网站建立个人网站服务器
  • 网站开发工程师岗位概要网站怎么制作教程
  • 城乡建设主管部门官方网站公司简介模板ppt范文
  • 网站认证必须做么cc0图片素材网站
  • net域名 著名网站国外设计案例网站
  • 淘宝客网站哪里可以做app地推网
  • 宜昌建设厅网站中国最新时事新闻
  • 微网站怎么开发wordpress 发表评论
  • 山东网站建设是什么一页网站首页图如何做
  • 游戏开发与网站开发哪个难万网影
  • 做网站编程语言建筑施工特种证书查询
  • 找人做网站内容自己编辑吗修改wordpress登陆界面
  • 登陆建设银行wap网站湖南网站建设磐石网络答疑
  • 58网站怎么做浏览度才高论坛网站怎么做排名
  • wordpress 手机网站支付京东网站建设的经费预算
  • 自己怎么样做游戏网站做海外贸易网站
  • 建立什么样的网站好制作网页网站代码
  • 岳麓区专业的建设网站公司尚一网常德论坛
  • 电商网站建设实训报告360站长平台链接提交
  • 个性化网站建设公司个人网站备案类型
  • 腾讯建站模板上海网站开发有限公司
  • 网站和小程序的区别请问做网站怎么赚钱