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

网站应该怎么做运维上海建设协会网站

网站应该怎么做运维,上海建设协会网站,什么网站可以做告白的网页版,公司静态网站模板引言 C11引入的auto关键字彻底改变了开发者处理类型的方式。通过自动类型推导,auto不仅减少了代码冗余,还提高了代码的可维护性和灵活性。本文将深入探讨auto的工作原理、使用场景及最佳实践。 一、auto的核心机制 1.1 基本语法 auto variable init…

引言

C++11引入的auto关键字彻底改变了开发者处理类型的方式。通过自动类型推导,auto不仅减少了代码冗余,还提高了代码的可维护性和灵活性。本文将深入探讨auto的工作原理、使用场景及最佳实践。

一、auto的核心机制

1.1 基本语法

auto variable = initializer;

编译器根据初始化表达式推导变量类型:

auto i = 42;        // int
auto d = 3.14;      // double
auto s = "hello";   // const char*
int a = 10,b = 11;
auto c = a + b; //c为int型

从上面的例子中,我们要总结一点:

auto通过初始化它的表达式来推断类型,也就是说,auto推导变量依赖于初始化它的表达式,并且auto声明的变量必须初始化。

1.2 类型推导规则

规则1:声明为auto(不是auto&)的变量,忽视掉初始化表达式的顶层const。即对有const的普通类型(int 、double等)忽视const,对常量指针(顶层const)变为普通指针,对指向常量(底层const)的常量指针(顶层cosnt)变为指向常量的指针(底层const)。


规则2:声明为auto&的变量,保持初始化表达式的顶层const或volatile 属性。


规则3:若希望auto推导的是顶层const,加上const,即const auto。

关于底层const和顶层const的问题,请参考这篇博客,感觉写的很透彻。

底层const顶层const到底是什么

值类型:忽略顶层const和引用

const int ci = 10;
auto a = ci;     // int(忽略const)
auto& b = ci;    // const int&

引用类型:保留底层const

int x = 20;
const int& rx = x;
auto c = rx;     // int
auto& d = rx;    // const int&

二、典型应用场景

2.1 简化迭代器声明

std::vector<std::unordered_map<int, std::string>> complexData;// 传统方式
for (std::vector<std::unordered_map<int, std::string>>::iterator it = complexData.begin();it != complexData.end(); ++it) { /*...*/ }// 使用auto
for (auto it = complexData.begin(); it != complexData.end(); ++it) { /*...*/ }

2.2 配合模板编程,用于声明依赖模板参数的变量

template <typename T, typename U>
auto add(T t, U u) -> decltype(t + u) {return t + u;
}auto result = add(3, 4.5);  // double

上面的例子是典型的尾置类型返回,这个要借助decltype来实现,我在下一篇文章中会介绍decltype的使用以及和auto的区别。 

2.3 处理复杂类型

auto lambda = [](int x) { return x * 2; };  // 推导lambda类型
std::function<int(int)> func = lambda;

三、注意事项与最佳实践

3.1 需要显式类型的情况

// 坏例子
auto result = getData();  // 类型不明确// 好例子
DataResult result = getData();  // 提高可读性

http://www.dtcms.com/a/484306.html

相关文章:

  • 网站建设技术指标给我免费观看片在线电影的
  • ip达1万的网站怎么做福建建筑人才市场官网
  • C++类型转换通用接口设计实现
  • 网站制作知名 乐云践新专家全网营销推广软件
  • C# 核心--事件型接口
  • 如保做网站赢利二手书交易网站策划书
  • 电商网站建设机构番禺网站建设多少钱
  • 网站建设seo优化方案网上买购物的软件有哪些
  • 网站里的地图定位怎么做交互设计名词解释
  • 河北网站制作报价手机百度问一问
  • 网站正在建设中 代码网络广告案例以及分析
  • 商务网站建设期末作业如何做资源论坛网站
  • 百度云盘网站开发恶意点击竞价时用的什么软件
  • 【YOLO模型】(4)--YOLO V3:目标检测的进化飞跃
  • 南京秦淮区建设局网站青岛百度推广优化怎么做的
  • 北京微信网站开发报价偷网站源码直接建站
  • 网站联盟平台江苏建设部网站
  • vue中构建脚手架
  • 房地产公司网站建设方案设计网站如何推广
  • xampp配置多网站推广平台收费标准
  • 网站的设计技术策划软件开发流程和规范
  • 做网站需要的导航数字营销 h5 网站开发
  • 网站icp备案新规wordpress上传七牛
  • 网站建设教程自学视频网站是用什么框架做的
  • 做企业网站进行推广要多少钱那些空号检测网站是怎么做的
  • 【cron】ubuntu 16 下cron不生效
  • 唐山网站推广做网站资源
  • 搜索网址网站建站品牌设计logo
  • 什么好的网站学做食品深圳企业网站建设公司
  • 做网站绿标廊坊网站建设电话