【C++】列表初始化

C++列表初始化学习笔记

1. 了解C++列表初始化的基本概念

  • 作用:列表初始化是一种初始化对象的方式,使用花括号 {} 来指定初始值。
  • 优势:列表初始化提供了一种简洁、统一的初始化语法,可以用于初始化各种类型的对象,包括数组、结构体、容器等。
  • 发展历程:C++11引入了列表初始化语法,它是对传统初始化方式的扩展和改进。

示例代码

int x{5};             // 使用列表初始化初始化一个整数
std::vector<int> v{1, 2, 3, 4}; // 使用列表初始化初始化一个整数向量

2. 学习C++列表初始化的多种应用场景

  • 初始化数组:使用列表初始化可以方便地初始化数组,无需指定数组大小。
  • 初始化容器:列表初始化可以用于初始化各种容器,如std::vector、std::map等。
  • 初始化自定义类型:通过重载构造函数,自定义类型也可以使用列表初始化。

示例代码

int arr[]{1, 2, 3, 4, 5};          // 初始化整型数组
std::vector<int> vec{1, 2, 3, 4};  // 初始化整型向量
struct Point {
    int x;
    int y;
};
Point p{10, 20};                   // 初始化自定义类型

3. 掌握C++列表初始化的使用技巧

  • 避免隐式类型转换:列表初始化会抑制隐式类型转换,因此可以减少类型不匹配的错误。
  • 优先级问题:列表初始化会优先选择与之匹配的构造函数,而不是进行类型转换。
  • 注意花括号的歧义:在初始化嵌套结构或容器时,需要注意花括号的使用,以避免歧义。

示例代码

struct MyStruct {
    MyStruct(int a, double b) {}
};
MyStruct ms{1, 2.5};  // 匹配构造函数 int,double

4. 实战案例分析

  • 初始化复杂数据结构:使用列表初始化可以方便地初始化复杂的数据结构,如多维数组、嵌套结构体等。
  • 初始化容器元素:列表初始化可以用于初始化容器的元素,使代码更加简洁和易读。
  • 提高代码的可维护性:列表初始化提供了一种统一的初始化语法,使代码更加清晰和易于维护。
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值