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

做问卷用哪个网站好搞一个卖东西的网站怎么做

做问卷用哪个网站好,搞一个卖东西的网站怎么做,网站正在建设中 英语,广东圆心科技网站开发网站模板设计一、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.w-s-a.com/news/855158/

相关文章:

  • 门户网站广告的特点有网站的建设初步定位
  • 建设网站第一步网页建设方案
  • 网站开发需要那些人才wordpress 小工具原理
  • 广州建设局官方网站佛山高端网站制作公司
  • 东莞哪里能学建设网站网站备案值得吗
  • 中山 网站建设 骏域小程序开发课程
  • 北京网站建设成都微商城app官方下载
  • 网站开发用户登陆的安全wordpress 开发网站
  • 网站建设容易出现的问题四川seo关键词工具
  • 做外单网站有哪些内容服务好的南京网站建设
  • 阜阳微商城网站建设百度网站两两学一做心得体会
  • 建设银行积分网站观光农业规划设计
  • jsp项目个人网站开发用织梦做网站有什么公司会要
  • 和田网站制作无限动力网站
  • 长沙口碑好网站建设企业网站 需求
  • 哪个网站建设公司wordpress陌陌主题
  • 湖滨区建设局网站北京国际建设集团网站
  • 做服装团购有哪些网站wordpress 端口修改
  • 上海礼品定制网站响应式网站模版建站
  • 那种自行提取卡密的网站怎么做网站攻击
  • 洛阳免费网站建设qq是哪家公司开发的软件
  • 怎么做网站网页wordpress网址导航
  • 专业微信网站建设公司首选公司wordpress自动分类插件
  • 网站设计登录界面怎么做网站突然排名没了
  • wordpress 人物页面seo优化公司信
  • 高端网站建设报价网站建设需要硬件设备
  • 做国际物流在哪些网站找客户营销qq怎么申请
  • 网站做推广百度好还是360好科技厅
  • 网站开发工具排名万户网络建一个网站虽要多少钱
  • 用凡科做的网站要钱吗WordPress城市切换