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

深圳网站建设有哪些公司wordpress产品图片太大

深圳网站建设有哪些公司,wordpress产品图片太大,企业网站欣赏,丽江网页制作一、auto的意义 在C11中赋予auto的意义是#xff1a;在声明变量时#xff0c;根据初始化表达式自动推断该变量的类型。声明函数时作为函数返回值的占位符#xff08;用在函数返回类型后置的情况#xff09;。 如 auto i 6; //auto推断为intauto func()-int //函数返…一、auto的意义 在C11中赋予auto的意义是在声明变量时根据初始化表达式自动推断该变量的类型。声明函数时作为函数返回值的占位符用在函数返回类型后置的情况。 如 auto i 6; //auto推断为intauto func()-int //函数返回类型后置auto作为占位符 {return 666; } 二、使用auto的一些注意事项 1、当使用一个auto声明多个变量时遵循由左至右的推导规则以最左边的表达式推导出auto的类型 int a 5; auto *p a, b 10; //由于a为int*类型则p为int*类型auto推导为int, b为int型变量 2、可以使用条件表达式初始化auto声明的变量且当条件的值类型不同时编译器总是使用表达能力更强的类型作为auto的推导类型 auto i true ? 5 : 10.0; //由于5为int型10.0为double型编译器会将auto推导为double 3、auto无法声明非静态成员变量 三、推导规则 1、如果auto声明的变量按值初始化则推导出的类型会忽略初始化表达式的cv限定符const和volatile限定符、引用属性。但是指针属性会保留 const int a 5; //a为const int类型变量 auto b a; //auto推导为int, b为int型变量const属性被忽略int c 8; int e c; //e为int类型 int f 8; //f为int类型 auto i e; //auto推导为int忽略了左值引用的属性 auto j f; //auto推导为int忽略了右值引用的属性int *p c; //p为int*类型 auto pp p; //auto推导为int* 2、 对于auto声明的变量无论初始值是什么类型该变量都会被推导为对应的左值引用类型且会保留cv属性 int a 1; //a是int型左值 int b a; //b是int型左值引用 int c 3; //c是int型右值引用 const int d 7; //d是const int型auto m a; //m被推导为int, auto-int auto m b; //m被推导为int, auto-int auto m c; //m被推导为int, auto-int auto m d; //m被推导为const intauto-const int auto m 888; //error,无法编译通过左值引用不能引用右值 3、对于auto声明的变量导为左值引用类型如果初始值是右值该变量将会被推导为右值引用类型。同样的也会保留cv限定符 这里2,3点使用了引用折叠规则可以参考这篇文章。 C万能引用和完美转发_星星典典的博客-CSDN博客 int a 1; //a是int型左值 int c 3; //c是int型右值引用 const int d 7; //d是const int型auto m a; //m被推导为int auto m c; //m被推导为int。注意c虽然是右值引用类型用于引用右值但是c本身是具名对象是左值 auto m d; //m被推导为const intauto-const int auto m 888; //888是右值所以m被推导为int 4、使用auto声明变量时如果初始化对象是一个数组或者是函数则auto会被推导为对应的指针类型。 int arr[5]; void func(int){}auto ap arr; //ap被推导为int*类型 auto fp func; //fp被推导为void(__cdecl *)(int)类型三、auto的常见用处 1、当我们一眼就能看出变量的初始化类型为了简化代码常常使用auto声明变量 例如在for循环中遍历std::map见如下代码。 如果不使用auto我们就要使用std::mapstd::string, int::const_iterator来声明it。但是这并不会有什么好处反而让代码读起来有点困难。 void func(std::mapstd::string, int data_map) {for(const auto it : data_map){std::cout it.first value: it.second std::endl;} } 2、对于比较复杂的返回类型例如lambda表达式、band等可以使用auto 例如 int main() {auto func [](int a, int b){ std::cout a b std::endl; };func(1, 2);func(3, 4); } 对于lambda表达式func的类型我们无法准确写出。好在我们无需关注lambda表达式的类型直接使用auto声明就好。 3、作为函数返回值支持返回类型的推导 C14支持对对函数返回类型声明为auto的推导所以我们可以这样使用auto auto sum(int a, int b){return ab;} 很明显函数sum的返回值将被推导为int。 但是如果返回值可能存在多种情况时必须返回值类型要保持一致。 例如将sum写成如下这样会发生编译错误。 auto sum(int a, int b) {if (a 0 b 0)return std::string(error);return a b; } 4、将auto作为lambda表达式的形参 如下代码所示2个形参都是auto。在使用时a被推导为intb被推导为double。在没指定返回值类型的情况下返回值类型将被推导为表达能力更强的double。 注意具名函数不可以将形参声明为auto。如果也想声明一个泛式的具名函数可以使用模板函数的方法实现。 int main() {auto sum2 [](auto a, auto b){ return a b; };std::cout sum2(1, 3.4); } 5、将auto作为lambda的返回类型可以通过推导返回引用类型 正常情况下在后置返回类型中不可以使用auto例如上面第3点中的具名函数sum可以将auto作为前置返回类型但是不可以后置。 但是人们发现这种方法是可以让lambda表达式通过推导返回引用类型的唯一方式。 int main() {auto sum2 [](auto a, auto b) - auto { a a b; return a; };int a 1;std::cout a a sum2 sum2(a, 3.4); }
http://www.hkea.cn/news/14444511/

相关文章:

  • 创意广告设计网站网站免费正能量直接进入老狼信息
  • 怎么建设百度网站什么网页比较好做
  • 网站加速 wordpress上海网站排名推广
  • 用易语言做刷网站注册软件网页设计版式布局
  • 网站建设与搜索引擎营销的关系天津低价做网站
  • 国外排版网站新手入门网站建设
  • 广州 做网站淘宝网站代理怎么做
  • 网站备案 异地深圳网站建设者
  • 微网站建设难不难上海seo及网络推广
  • 做网站如何推销光谷网站建设
  • 做网站gzip压缩wordpress自定义图片
  • 网站被电脑管家拦截做301跳转深圳做微信商城网站建设
  • 网站如何提高百度排名做网站思想
  • 做网站傻瓜软件05网全部答案数学
  • 高等学校处网站建设总结上海自主建站模板
  • wordpress网站怎么加速wordpress产品展示
  • 阜宁网站建设找哪家好唐山建设公司网站
  • 浙江公司网站建设制作网站开发线框
  • 给公司做网站需要什么信息株洲网站优化哪家强
  • 注册网站能赚钱吗万能推广app
  • 多语言网站系统星空 电影 在线观看
  • 邯郸建设网站进入公众号闪退怎么回事
  • 八度填写icp备案网站 接入信息潍坊建设工程有限公司
  • 空间建网站品牌网站建设特色
  • 企业网站推广的方式有哪些网站做支付要多少钱
  • 微网站自助建站后台福建seo顾问
  • 集团门户网站建设策划如何设置wordpress的文章分类
  • 专业建设网站企业赤壁网站定制
  • 网站架构设计师专业下载网站源码
  • 淘宝网站的建设目的是什么樊城区建设局网站