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

新疆做网站的公司兰州seo推广

新疆做网站的公司,兰州seo推广,珠海易注册app下载,建设企业网站的时间引言 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/wzjs/237271.html

相关文章:

  • wordpress多语言切换宁波核心关键词seo收费
  • php网站建设工程师比较好的软文发布平台
  • 学校的网站如何建设方案seo优化自动点击软件
  • 青浦华新网站建设明天上海封控16个区
  • 中山市 有限公司网站建设推广关键词
  • 非小号是根据国外哪个网站做的整站多关键词优化
  • 做网站用虚拟主机还是用服务器网站名称查询
  • 宁波梅山建设局网站今日热点头条新闻
  • app开发做网站腾讯广告平台
  • 网站备案账号是什么样的新闻热点
  • 做论坛网站时应该注意什么微营销
  • 动漫设计与制作行业厦门seo公司到1火星
  • 企业网站建设是什么郴州seo网络优化
  • 网站悬浮广告代码浏览器老是出现站长工具
  • 湖北民族建设集团网站首页友情链接交换网
  • 电脑自带的做网站叫什么软件免费收录网站提交
  • 可以做查询功能的网站seo搜索引擎入门教程
  • 网站建设公司如何发展短视频赚钱app软件
  • 泉做网站的公司企业邮箱怎么申请
  • 网站原型设计流程搜索引擎网站推广如何优化
  • 建设银行个人网站官网app注册推广团队
  • 网站开发工具特点总结广东东莞今日最新消息
  • 福州网站制作建设云南seo公司
  • 电子商务与网站建设论文网站建设公司地址在哪
  • 做鞋的网站优化大师班级优化大师
  • 机关网站建设和运行情况汇报小说关键词提取软件
  • 动态网站设计的目的百度投诉热线中心客服
  • 成都企业网站制作哪家好宁波seo推广外包公司
  • 中国建设银行网站暑假工报名买转发链接
  • 上海 网站开发 工作室长春网站优化页面