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

C++11新特性 10.初始化列表、initializer_list

目录

一.初始化列表

使用示例

二.initializer_list

1.基本概念

2.使用示例


一.初始化列表

C++11提供的统一初始化方式,实现直接对数据初始化

使用示例

/*
初始化列表
*/
#include <iostream>
using namespace std;
class Person
{
public:
    Person(string name, int age):m_name(name),m_age(age){}
    Person(string name):m_name(name){}
    Person(int age):m_age(age){}

    string m_name;
    int m_age;
};

int main()
{
    Person P1("liu");//有参构造
    Person P2("liu",18);
    Person P3 = 18; //隐式类型转换
    Person P4 = { " liu"};//初始化列表
    Person P5 { "liu",18}; // 初始化列表{}

    int a1 = {1234};
    int a2{1234};//初始化列表
    int arr1[] = {1,2,3};
    int arr1[]{ 1,2,3};//初始化列表

    int *p = new int {520};
    double b = double{52.134};
    int* array = new int[3]{1,2,3};
    return 0;
}

二.initializer_list

1.基本概念

std::initializer_list 是一个轻量级的容器类型,它可以存储一组同类型的元素,并且这些元素在初始化时以列表的形式提供。std::initializer_list 通常用于支持初始化列表语法,允许你使用花括号 {} 来初始化对象,就像初始化数组一样。

2.使用示例

#include <iostream>
#include <initializer_list>

void func(initializer_list<int> ls){
    auto it = ls.begin();
    for( ; it != ls.end();++it)
    {
        cout << *it << " ";
    }
    cout << endl;
}

int main()
{
    func({3,4,5,6,7,8});
    return 0;
}

相关文章:

  • 嵌入式设备的功能安全和信息安全?
  • 数据结构——排序算法第一幕(插入排序:直接插入排序、希尔排序 选择排序:直接选择排序,堆排序)超详细!!!!
  • 物联网中如何增加其可扩展性 协议 网络 设备 还包括软件层面上的
  • 深度相机进行目标物体的空间姿态(位姿)估计
  • 《Linux命令行和shell脚本编程大全》第四章阅读笔记
  • RReadWriteLock读写锁应用场景
  • 第五次CCF-CSP认证(含C++源码)
  • 线性回归机器学习
  • 如何打开文件后缀名
  • 基于大模型的小脑扁桃体下疝畸形全流程预测与诊疗方案研究报告
  • 力扣热题 100:堆专题经典题解析
  • 建筑兔零基础自学记录42|cityengine2019导入sketchup/SU 2
  • 架构思维:高性能架构_01基础概念
  • 2025.3.9总结
  • p5.js:sound(音乐)可视化,动画显示音频高低变化
  • 基于定制开发开源AI智能名片S2B2C商城小程序的零售运营策略研究
  • linux安装Mariadb10.5并修改端口
  • Linux基础之Linux常用命令
  • 行式数据库与列式数据库区别
  • 【Linux通信篇】深入理解进程间通信——管道
  • 做网站的公司哪里好/seo排名策略
  • 做网站的前提/排名优化
  • 郑州网站制作天强科技/长沙seo代理商
  • 新手学做网站/友情链接交易网站源码
  • 长沙小红书推广公司/苏州优化seo
  • 做图片网站会被/创建网站的基本步骤