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

C++11 列表初始化(initializer_list),pair

1. {} 初始化

C++98 中,允许使用 {} 对数组进行初始化。

	int arr[3] = { 0, 1, 2 };

C++11 扩大了 {} 初始化 的使用范围,使其可用于所有内置类型和自定义类型。

struct Date
{int _year;int _month;int _day;Date(int year, int month, int day):_year(year),_month(month),_day(day){}
};int main()
{// 两种常见的用法:Date d1{2024, 6, 8};Date d2 = {2024, 6, 8};// 列表初始化可用于 new 表达式int* pa = new int[4]{ 0 };return 0;
}

2. std::initializer_list

int main()
{auto arr = { 1, 2, 3 };cout << typeid(arr).name() << endl; // typeid().name() 用于查看对象的数据类型return 0;
}

std::initializer_list 是 C++11 引入的一个模板类型,用于处理一组同类型的初始值。

主要用于构造函数和函数参数列表中,允许使用 {} 初始化或传递一系列相同类型的值。

std::initializer_list 作为构造函数的参数,C++11 对不少容器增加了 initializer_list 作为参数的构造函数:

std::initializer_list 作为 operator=() 的函数参数:

常见的使用场景:

int main()
{map<string, string> dict{ {"iterator", "迭代器"}, {"singularity", "奇异"}, {"sort", "排序"} };vector<int> v = { 1, 2, 3, 4, 5 };return 0;
}

3. pair 的补充知识

namespace MyTest 
{template<class T1, class T2>struct pair{pair(const T1& first, const T2& second):_first(first),_second(second){}template<class K, class V>pair(const pair<K, V>& kv):_first(kv._first),_second(kv._second){}T1 _first;T2 _second;};
}
http://www.lryc.cn/news/367662.html

相关文章:

  • Python3 笔记:字符串的 startswith() 和 endswith()
  • Web前端安全问题分类综合以及XSS、CSRF、SQL注入、DoS/DDoS攻击、会话劫持、点击劫持等详解,增强生产安全意识
  • 1.单选题 (2分)下列关于脚本的说法不正确的是( )。本题得分: 2分正确答案: A2.单选题 (2分)软件测试自动化的局限性不包含( )。本题得分: 2分
  • 【Docker系列】跨平台 Docker 镜像构建:深入理解`--platform`参数
  • 力扣1248.统计优美子数组
  • AI2THOR 2.1.0使用教程
  • 在Nginx中配置php程序环境。
  • !力扣70. 爬楼梯
  • Spring boot+vue前后端分离
  • Python基础总结之列表转字符串
  • 二分【1】二分查找框架 查找指定元素
  • Python 中如何使用 lambda 函数
  • 关于焊点检测(SJ-BIST)模块实现
  • 关于修改Python中pip默认安装路径的终极方法
  • android集成百度文心一言实现对话功能,实战项目讲解,人人都能拥有一款ai应用
  • 事件总线vueEvent
  • 设计模式之观察者模式ObserverPattern(十一)
  • JavaScript 编程语言【 数据类型】日期和时间
  • RabbitMQ简单使用方法,以异步处理日志为例:
  • 二分+模拟,CF1461D - Divide and Summarize
  • C#操作MySQL从入门到精通(16)——使用子查询
  • 【vue实战项目】通用管理系统:图表功能
  • 第99天:权限提升-数据库提权口令获取MYSQLMSSQLOracleMSF
  • Java 环境配置 -- Java 语言的安装、配置、编译与运行
  • 升级最新版openssh-9.7p1及openssl-1.1.1h详细步骤及常见问题总结
  • 学习使用 Frida 过程中出现的问题
  • Java实现简单词法、语法分析器
  • Python实现半双工的实时通信SSE(Server-Sent Events)
  • python中的解包操作(*和**)
  • Lua 时间工具类