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

北京欢迎您网站建设陆良县住房和城乡建设局网站

北京欢迎您网站建设,陆良县住房和城乡建设局网站,网站快照诊断,优化大师卸载不了1. 关键字和语法 1.1 nullptr 空指针#xff0c;能够和整数0进行区别#xff0c;因为#define NULL 0 1.2 类中非静态成员变量定义时初始化 初始化列表 1.3 auto 可推导出右值类型#xff0c;从而得知左边变量类型。 简单使用示例#xff1a; auto func() {retur…1. 关键字和语法 1.1 nullptr 空指针能够和整数0进行区别因为#define NULL 0 1.2 类中非静态成员变量定义时初始化 初始化列表 1.3 auto 可推导出右值类型从而得知左边变量类型。 简单使用示例 auto func() {return 3.33; }struct Test {int a;double c; };void test() {auto a 1;auto b func();cout b endl;Test t1 { 2,2.111 };auto t2 t1;cout typeid(t2).name() endl; // struct Test} 注意 aauto定义变量必须初始化如下用法错误 auto a; a 10; bauto不能定义自定义类型的成员变量如下用法错误 struct Test {int a;auto b 10; } cauto不能定义数组如下用法错误  auto b[3] { 1,2,3 }; d auto不能作为模板实例化类型如下用法错误  vectorauto v { 1, 2, 3 }; 1.4 decltype 获取变量的类型。 简单使用示例 auto c 3.3; decltype(c) d 9.9; cout typeid(d).name() endl; // double cout d endl; // 9.9/*获取枚举类型*/ enum { OK, ERROR } flag; decltype(flag) flag2; 类型追踪 结合模板和auto使用。 templatetypename T1, typename T2 auto add(const T1 a, const T2 b)-decltype(a b) { // 推导出(ab)类型return a b; }void test01() {auto ret1 add(1, 1.01);cout typeid(ret1).name() endl; // doubleauto ret2 add(1, 2);cout typeid(ret2).name() endl; // int } 1.5 基于范围的for循环 可遍历数组、容器等底层为指针或迭代器实现。 for(Type val : container) {cout val endl; } 注意 范围需确定否则无法使用如下用法错误 void func(int a[]) {for(int tmp:a) {cout tmp endl;} } 1.6 静态断言 断言运行时检查条件为真则继续执行否则终止程序提示错误。如下 #includecassertvoid test04() {bool flag false;assert(flag true);cout Hello! endl; // 不执行 }运行结果 静态断言编译时检查条件。 用法 static_assert(常量表达式条件, 提示字符串); 例如 void test05() {static_assert(sizeof(void*) 4, 64位); // 静态断言失败cout Hello endl; } 1.7 noexcept修饰符 声明一个函数不会抛出异常帮助编译器优化代码使用方式如下 void test06() noexcept {... } 1.8  模板的默认参数 如下 /*普通函数 一默到底*/ void test07(int a, int b 3, int c 5) {}/*类模板 一默到底*/ templatetypename T1, typename T2 double class A {};/*类模板 无限制*/ templatetypename T1 int, typename T2, typename T3 auto test08(T1 a, T2 b, T3 c)-decltype(a b c) {return a b c; } 1.9 可变参模板 typename... A 1可变参模板函数递归方式展开参数包 void debug() { // 递归终止函数示例cout 调用结束.\n endl; }templatetypename T1, typename...T2 void debug(T1 first, T2...args) {cout first endl;// 递归调用debug(args...); }void test07() {debug(1, ABC, 3.14159); } 运行结果 2可变参模板非递归方式展开参数包 templatetypename T void print(T tmp) {cout tmp endl; }templatetypename...T void expand(T...args) {// 逗号运算符// 初始化列表int a[] { (print(args),0)... }; }void test08() {expand(1, 2, 3, 4); } 运行结果 3模板类继承方式展开参数包 待补充. 1.10 右值引用 省去内存开辟、拷贝构造等。包括move移动语义函数、forward类型完美转发。 2. 绑定器和函数对象 bind、function、Lambda表达式 3. 智能指针 shared_ptr、weak_ptr 4. 容器 set、map红黑树数据有序O(logn); unordered_set、unordered_map哈希表不要求数据有序O(1) array不可扩容数组 forward_list前向链表list双向链表。 5. 语言级别的线程库 使得多线程程序可更好地跨平台。 thread、mutex、condition_variable lock_guard、unique_lock atomic原子类型 sleep_for 底层封装的仍是Windows、Linux的线程API例如Linux下可使用strace ./a.out跟踪程序的调用。
http://www.hkea.cn/news/14481528/

相关文章:

  • 公司网站二维码怎么做网站建设大作业论文
  • 做爰网站下载地址word用来做网站的
  • 徐州企业建站模板域名备案需要多少钱
  • 青岛网站建设福建建设注册中心网站
  • 苏州企业如何建网站网站数据链接怎么做
  • 上海网站seo快速排名洛阳霞光做网站公司
  • 做的好的商城网站设计php中英双语农业公司网站源码
  • 滁州市建设银行网站深圳西乡地铁站
  • 人才网站建设报告佛山洛可可设计公司
  • 国外素材网站昆山品牌网站
  • 松江附近做网站怎么在各个网站免费推广信息
  • 网站建设费用先付一半做网站备案好还是不备案好
  • 做阀门的网站专业制作网页的公司
  • 蕲春网站建设wap网站登陆系统
  • 如何搭建一个完整的网站网站外链怎么发
  • html5 开发网站cms系统设计
  • 怎么做免费网站教程网站软文得特点
  • 网站建设大赛海报罗村网站制作
  • 网站建设 考核指标记事本做网站怎么改字体
  • 网站icp备案系统下载网站系统修改不了怎么回事
  • 咸阳网站建设工作室北京文化馆设计公司的参数
  • 填写网站信息初中毕业生怎么自考大专
  • 是否网站备案爱站网长尾词挖掘工具
  • 老干部活动中心网站建设方案WordPress透明二次元模板69
  • 哈尔滨餐饮网站建设网站建设续费是那些
  • 网站关键词选取济宁住房和城乡建设厅网站首页
  • 建设工程协会网站项目建设对企业的意义
  • 厦门商城网站建设深圳做网站哪个好
  • 怀化火车站优化改造中国建设银行网站快速查询
  • 企业网站优化兴田德润怎么样营销网站售后调查系统