c++11新特性-3-自动类型推导

文章目录

  • 自动类型推导
    • 1.auto
      • 1.1 const修饰
      • 1.2 auto不能使用的场景
      • 1.3 auto应用场景
    • 2.decltype
      • 1.1 基本语法

自动类型推导

1.auto

注意,auto必须进行初始化

auto i = 10; //int类型auto k = 3.14; //double类型auto db; //错误

1.1 const修饰

当const修改指针或者引用时,才会保存下const,否则就会丢弃。

int temp =10;
// a1 : const int
const auto a1 = temp; //a2: int
auto a2 = a1;//a3: const int
auto& a3 = a1; 

1.2 auto不能使用的场景

  1. auto作为函数的参数类型
void show(auto a,auto b)
{.....
}
  1. 作为类的非静态成员变量的初始化
class Test
{auto v = 0; //错误static auto c = 10//错误
}
  1. 定义数组
int arry[] = {1,2,3,45};auto arry1 = arry; //正确 arry1 : int*auto arry2[] = arry; //错误auto arry3[] = {1,2,3,45}; //错误
  1. 使用auto推导模板参数

Person<string,int> p;Person<auto,auto>p1 = p; // 错误

1.3 auto应用场景

  1. STL容器遍历
vector<int> v1;for(auto i = v1.begin(); i != vi.end(); i++)
{cout << *i << endl;
}
  1. 泛型编程
class T1
{public:int get(){return 10;}
};class T2
{public:string get(){return "hello";}
};template<typename T>
void print()
{auto ret = T::get();cout << ret << endl;
}int main()
{print<T1>();print<T2>();
}

2.decltype

1.1 基本语法

int a = 4;
decltype(a) b ; // b: int
decltype(a+3.14) c; //c : double

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/41498.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++:构造函数是什么东西

一、构造函数是什么 在C中&#xff0c;构造函数是一种特殊成员函数&#xff0c;它有一下几个明显的特征&#xff1a; 1、它自动在创建新对象时被调用。 2、其名称与类名相同&#xff0c; 3、没有返回类型&#xff0c; 4、通常没有参数&#xff08;除了默认情况下的隐式thi…

跟《经济学人》学英文:2024年06月01日这期 The side-effects of the TikTok tussle

The side-effects of the TikTok tussle tussle&#xff1a;美 [ˈtəsəl] 激烈扭打&#xff1b;争夺 注意发音 side-effects&#xff1a;副作用&#xff1b;&#xff08;side-effect的复数&#xff09; As the app’s future hangs in the balance, the ramifications of …

MySQL的并发控制、事务、日志

目录 一.并发控制 1.锁机制 2.加锁与释放锁 二.事务&#xff08;transactions&#xff09; 1.事物的概念 2.ACID特性 3.事务隔离级别 三.日志 1.事务日志 2.错误日志 3.通用日志 4.慢查询日志 5.二进制日志 备份 一.并发控制 在 MySQL 中&#xff0c;并发控制是确…

都有哪些离线翻译器软件?没网就用这4个

经历完痛苦的期末考&#xff0c;可算是千盼万盼等来了日思夜想的暑假&#xff01;趁着这大好时光&#xff0c;怎么能不来一场出国游呢~ 不知道有多少小伙伴和我一样&#xff0c;出国玩最怕的就是语言不通&#xff0c;不管是吃饭还是游玩体验感都会大受影响~好在多出国玩了几趟…

ES6模块化学习

1. 回顾&#xff1a;node.js 中如何实现模块化 node.js 遵循了 CommonJS 的模块化规范。其中&#xff1a; 导入其它模块使用 require() 方法 模块对外共享成员使用 module.exports 对象 模块化的好处&#xff1a; 大家都遵守同样的模块化规范写代码&#xff…

Linux 时区文件格式【man 5 tzfile】

时区文件格式标准&#xff1a;https://datatracker.ietf.org/doc/html/rfc8536 1. NAME&#xff08;名&#xff09; tzfile - 时区文件。&#xff08;非文本文件&#xff09; 2. DESCRIPTION&#xff08;描述&#xff09; 本页介绍被 tzset(3) 函数使用的时区文件的结构。这…

006 线程安全

文章目录 临界资源线程安全基本概念*何谓竞态条件**何谓线程安全* 对象的安全局部基本类型变量局部的对象引用对象成员(成员变量) 不可变性 临界资源 临界资源是一次仅允许一个进程使用的共享资源。各进程采取互斥的方式&#xff0c;实现共享的资源称作临界资源。属于临界资源…

如何使用GPT进行科研:详细指令指南

如何使用GPT进行科研&#xff1a;详细指令指南 随着GPT模型的流行&#xff0c;越来越多的科研人员开始利用这项技术来辅助科学研究&#xff0c;特别是在文本处理任务如论文翻译、文本润色和降低抄袭率方面。本文将提供详细的指令&#xff0c;帮助科研人员有效地使用GPT进行科研…

计算机相关专业入门,高考假期预习指南

一&#xff1a;学习资源推荐 跟着b站的“黑马程序员”学c&#xff0c;黑马程序员匠心之作|C教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibili&#xff0c;把这个编程语言基础打好&#xff0c;然后看“蓝桥杯算法”&#xff0c;到了大一直接就能打蓝桥杯比赛了 看完上面的 …

TRILL简介

介绍TRILL的定义及目的。 定义 TRILL(Transparent Interconnection of Lots of Links)是一种把三层链路状态路由技术应用于二层网络的协议。TRILL通过扩展IS-IS路由协议实现二层路由&#xff0c;可以很好地满足数据中心大二层组网需求&#xff0c;为数据中心业务提供解决方案…

用数组手搓一个小顶堆

堆默认从数组下标为1开始存储。 const int N201000; int heap[N]; int len; 插入操作&#xff1a; 将元素插入到堆的末尾位置向上调整。 void up(int k){while(k>1&&heap[k/2]>heap[k]){swap(heap[k],heap[k/2]);k/2;} } //len为当前存在元素长度 void Inser…

水利水库大坝结构安全自动化监测主要测哪些内容?

在大坝安全自动化监测系统建设中&#xff0c;应根据坝型、坝体结构和地质条件等因素选定监测项目&#xff1b;主要监测对象包括坝体、坝基及有关的各种主要水工建筑物、大坝附近的不稳定岸坡和大坝周边的气象环境。深圳安锐科技建议参考下列表格适当调整。 &#xff08;一&am…

计算机网络(2

计算机网络续 一. 网络编程 网络编程, 指网络上的主机, 通过不同的进程, 以编程的方式实现网络通信(或网络数据传输). 即便是同一个主机, 只要不同进程, 基于网络来传输数据, 也属于网络编程. 二. 网络编程套接字(socket) socket: 操作系统提供的网络编程的 API 称作 “soc…

(0)2024年基于财务的数据科学项目Python编程基础(Jupyter Notebooks)

目录 前言学习目标&#xff1a;学习内容&#xff1a;大纲 前言 随着数据科学的迅猛发展&#xff0c;其在财务领域的应用也日益广泛。财务数据的分析和预测对于企业的决策过程至关重要。 本专栏旨在通过Jupyter Notebooks这一强大的交互式计算工具&#xff0c;介绍基于财务的数…

【车载开发系列】常见单片机调试接口的区别

【车载开发系列】常见单片机调试接口的区别 【车载开发系列】常见单片机调试接口的区别 【车载开发系列】常见单片机调试接口的区别一. JTAG协议二. SWD接口三. RDI接口四. 仿真器1&#xff09;J-Link仿真器2&#xff09;ULink仿真器3&#xff09;ST-LINK仿真器 五. SWD / JTAG…

Day05-组织架构-角色管理

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.组织架构-编辑部门-弹出层获取数据2.组织架构-编辑部门-编辑表单校验3.组织架构-编辑部门-确认取消4.组织架构-删除部门5.角色管理-搭建页面结构6.角色管理-获取数…

MySQL中的DDL语句

第一题 输入密码登录mysql&#xff0c;创建数据库zoo&#xff0c;转换到zoo数据库&#xff0c; mysql> create database zoo character set gbk; mysql> use zoo查看创建数据库zoo信息 mysql> show create database zoo;删除数据库zoo mysql> drop database zo…

【后端面试题】【中间件】【NoSQL】MongoDB查询优化2(优化排序、mongos优化)

优化排序 在MongoDB里面&#xff0c;如果能够利用索引来排序的话&#xff0c;直接按照索引顺序加载数据就可以了。如果不能利用索引来排序的话&#xff0c;就必须在加载了数据之后&#xff0c;再次进行排序&#xff0c;也就是进行内存排序。 可想而知&#xff0c;如果内存排序…

【居家养老实训室】:看中医保健在养老中的应用

本文以居家养老实训室为视角&#xff0c;深入探讨了中医保健在养老中的应用。通过对中医保健理念、常用方法以及在居家养老中的具体实践进行分析&#xff0c;阐述了其在改善老年人健康状况、提高生活质量方面的重要作用。同时&#xff0c;也指出了目前应用中存在的问题&#xf…

Apache Kylin模型构建全解析:深入理解大数据的多维分析

引言 Apache Kylin是一个开源的分布式分析引擎&#xff0c;旨在为大数据提供快速的多维分析能力。它通过预计算技术&#xff0c;将数据转化为立方体模型&#xff08;Cube&#xff09;&#xff0c;从而实现对Hadoop大数据集的秒级查询响应。本文将详细介绍Kylin中模型构建的全过…