C++ initializer_list类型推导

news2024/11/15 17:34:57

目录

initializer_list

C++自动类型推断

auto

typeid

decltype


initializer_list<T>

C++支持统一初始化{ },出现了一个新的类型initializer_list<T>,一切类型都可以用列表初始化。提供了一种更加灵活、安全和明确的方式来初始化对象。

class Date
{
public:
	Date(int year,int month,int days):_year(year),_month(month),_days(days)
	{}
private:
	int _year;
	int _month;
	int _days;
};
int main()
{
	//{}列表初始化(统一初始化)
	int a { 10};
	int b = { 10 };
	char c={'x'};
	int arr[3] = { 1,2,3 };
	string s{"hello world"};
	Date d1(2022,1,2);//C++98的初始化方式
	Date d2{ 2019,2,3 };//C++11的列表初始化
	Date d3 ={ 2023,7,1 };//{2023,7,1}隐式类型转换->临时对象->d3拷贝构造
	vector<int> v = { 1,2,3,4,5,6 };C++11的列表初始化,vector具有形参类型是initializer_list的构造函数
	list<int> li = { 1,2,3 };
	return 0;
}

initializer_list结构

创建一个initializer_list,并遍历:

initializer_list<int> il = { 1,2,3 };
initializer_list<int>::iterator it = il.begin();
while (it != il.end())
{
	cout << *it << endl;
	++it;
}

可以将initializer_list作为容器构造函数的形参类型来初始化容器,例如:

C++自动类型推断

auto

通过auto关键字可以使程序员在写一些长度较长的类型名时免去拼写,使用auto来代替,auto会自动推导出等号右边的类型。

vector<int> v;
auto it = v.begin();//auto自动推导迭代器类型
//本来需要这样写vector<int>::iterator it=v.begin();

typeid

cout << typeid(v).name() << endl;//打印出类型的字符串

decltype

使用推导出来的类型定义新的变量

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

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

相关文章

Fragment+Viewpage2+FragmentStateAdapter实现滑动式标签布局

大家好&#xff0c;我是网创有方&#xff0c;今天记录下标签布局的实现方法&#xff0c;先看下效果图。 第一步&#xff1a;编写一个activity或者fragment。内含有一个viewpager2的适配器&#xff0c;适配器类型为FragmentStateAdapter。 ​ public class MediaCreateFragment…

pdf文件怎么删除其中一页?这些删除小技巧了解下

在我们日常的学习办公中&#xff0c;PDF文件因其跨平台、格式固定的特性&#xff0c;成为了我们工作和学习中不可或缺的一部分。然而&#xff0c;有时我们可能会遇到需要删除PDF文件中某一页的情况&#xff0c;这时该如何操作呢&#xff1f;下面教大家几种删除PDF页面小技巧&am…

钟义杰老师6月28号给中海油讲授《创新思维与创新管理+华为敏捷转型》圆满结束

钟老师的授课深受学员喜爱&#xff0c;课堂上老师讲了很多华为的案例&#xff0c;学员听的津津有味&#xff0c;对老师的授课一片好评

RedHat9 | podman容器-续集

一、管理容器存储和网络资源 使用容器来运行简单的进程&#xff0c;然后退出。可以配置容连续运行特定服务&#xff0c;如数据库服务。如果持续运行服务&#xff0c;需要向容器添加更多的资源&#xff0c;如持久存储或对其他网络的访问权限。 针对企业容器平台上的大型部署&a…

江协科技51单片机学习- p23 DS1302实时时钟

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…

#笔记# 写给自己用的小爬虫

最近完成了一个文旅行业信息聚合的小应用&#xff0c;实现仅从一个入口了解全行业的信息动态&#xff0c;不用一个一个翻看各网站&#xff0c;节省了不少检索时间。 一、基本思路 明确数据来源。基于前述目标&#xff0c;确定数据源为文化和旅游部管理部门官网&#xff0c;比…

万界星空科技公司推出AI低代码MES,引领制造业智能化新潮流

随着科技的不断进步和制造业的快速发展&#xff0c;传统生产管理模式正面临前所未有的挑战。在这个背景下&#xff0c;万界星空科技公司凭借其前瞻性的技术洞察力和强大的研发实力&#xff0c;推出了AI低代码MES&#xff08;制造执行系统&#xff09;&#xff0c;该系统凭借其独…

【深度学习】调整加/减模型用于体育运动评估

摘要 一种基于因果关系的创新模型&#xff0c;名为调整加/减模型&#xff0c;用于精准量化个人在团队运动中的贡献。该模型基于明确的因果逻辑&#xff0c;将个体运动员的价值定义为&#xff1a;在假设情景下&#xff0c;用一名价值为零的球员替换该球员后&#xff0c;预期比赛…

2024免费的股票数据接口API

沧海数据 # Restful API https://tsanghi.com/api/fin/stock/{exchange_code}/realtime?token5dbb47113a4a43a6be1755673ce854db&ticker{ticker} 数据来源&#xff1a;沧海数据 请求方式&#xff1a;Get 数据格式&#xff1a;标准Json格式[{},...{}]

一篇文章学会【node.js安装以及Vue-Cli脚手架搭建】

一.为什么搭建Vue-Cli (1).传统的前端项目结构&#xff1a; 一个项目中有许多html文件&#xff0c;每一个html文件都是相互独立的&#xff0c; 如果需要在页面中导入一些外部依赖的组件&#xff0c;就需要在每一个html文件中都需要导入&#xff0c;非常麻烦 (2).现在的前端…

【Python函数编程实战】:从基础到进阶,打造代码复用利器

文章目录 &#x1f68b;前言&#x1f680;一、认识函数&#x1f308;二、函数定义❤️三、函数调用⭐四、实参与形参&#x1f4a5;1. 形式参数&#x1f6b2;2. 实际参数&#x1f525;1. 位置参数☔2. 关键字参数&#x1f3ac;3. 默认参数&#x1f525;4. 可变数量参数(不定长参…

SpringBoot实现图片添加水印

提示&#xff1a;今日完成图片添加水印功能 后续可能还会继续完善这个功能 文章目录 目录 文章目录 前端部分 后端 Xml Controller层 Sercive层 Service实现层 Config配置层 application.properties 文件后缀名获取 常量定义 前端部分 <!DOCTYPE html> <htm…

MD5算法详解

哈希函数 是一种将任意输入长度转变为固定输出长度的函数。 一些常见哈希函数有&#xff1a;MD5、SHA1、SHA256。 MD5算法 MD5算法是一种消息摘要算法&#xff0c;用于消息认证。 数据存储方式&#xff1a;小段存储。 数据填充 首先对我们明文数据进行处理&#xff0c;使其…

ARCGIS python 裁剪栅格函数 arcpy.management.Clip

ARCGIS python 裁剪栅格函数 arcpy.management.Clip 1 功能 裁剪掉栅格数据集、镶嵌数据集或图像服务图层的一部分。 2 使用情况 基于模板范围提取部分栅格数据集&#xff0c;输出与模板范围相交的所有像素使用以 x 和 y 坐标的最小值和最大值确定的包络矩形或使用输出范围文…

全国产化飞腾模块BIOS下修复系统启动文件

1、背景介绍 全国产飞腾模块采用麒麟信安操作系统&#xff0c;当系统下面的grub.cfg文件被用户误操作导致无法启动时&#xff0c;可以在BIOS下通过U盘中备份的grub.cfg替换硬盘上原来的grub.cfg文件&#xff0c;从而实现启动。 2、操作步骤 首先进入BIOS命令行模式&#xff…

使用 Rustup 管理 Rust 版本

文章目录 安装 Rustup配置镜像源安装 Rustup 安装 RustVS Code插件创建项目代码示例 Rust 官网&#xff1a;https://www.rust-lang.org/zh-CN/Crates 包管理&#xff1a;https://crates.io/Rust 程序设计语言&#xff1a;https://kaisery.github.io/trpl-zh-cn/通过例子学 Rust…

七人互助拼团模式的深度剖析与互助精神的价值

在当下电商的浪潮中&#xff0c;七人互助拼团模式以其独特的运作方式和互助精神&#xff0c;赢得了广大消费者和商家的青睐。这一模式不仅为用户提供了优惠的购物体验&#xff0c;更在无形中培养了用户间的互助与协作精神。 一、激励机制的细致解读 七人互助拼团模式中&#x…

GPT-4o文科成绩超一本线,理科为何表现不佳?

目录 01 评测榜单 02 实际效果 什么&#xff1f;许多大模型的文科成绩竟然超过了一本线&#xff0c;还是在竞争激烈的河南省&#xff1f; 没错&#xff0c;最近有一项大模型“高考大摸底”评测引起了广泛关注。 河南高考文科今年的一本线是521分&#xff0c;根据这项评测&…

notepad++安装并打开json文件

1、notepad安装 1、首先下载Notepad.exe 2、选择简体中文安装 点击下一步 点击“我接受” 选择安装目录&#xff0c;进行下一步安装 默认下一步 选择安装 等待安装完成 点击完成 2、保存json文件 复制返回结果 先把返回结果复制出来。保存到text里面 把文件另存为json格式 3、…