返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++11列表初始化是怎样的
  • 773
分享到

C++11列表初始化是怎样的

2023-06-19 10:06:29 773人浏览 安东尼
摘要

这篇文章主要介绍“c++11列表初始化是怎样的”,在日常操作中,相信很多人在C++11列表初始化是怎样的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++11列表初始化是怎样的”的疑惑有所帮助!接下来,请跟

这篇文章主要介绍“c++11列表初始化是怎样的”,在日常操作中,相信很多人在C++11列表初始化是怎样的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++11列表初始化是怎样的”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

以前什么样

C或者C++在初始化数组时,可以使用下面的花括号加初始值的形式:

int int_array[] = {1, 2, 3, 4, 5};

在C++中,如果有下面这样一个类:

class Tester

{

public:

     Tester(int value)

         :m_value(value * 2)

     { }

     void print(){

         cout << m_value << endl;

     }

private:

     int m_value;

};

那么它的初始化可以写成这样:

Tester tester_array[] = {6, 7, 8, 9, 10};

Tester的构造函数可以被正常地调用。

存在的问题

问题就是这种方法的运用范围很窄,许多场景都用不了。例如vector,可以像数组一样使用,可以自己管理数据长度,还提供各种操作数组的方法。声明的方法也很简单:

vector<int> int_vector;

但是有一个问题,当需要指定元素初始化vector时就不那么方便了。

初始化方法1:

int_vector.push_back(5);
int_vector.push_back(4);
int_vector.push_back(3);
int_vector.push_back(2);
int_vector.push_back(1);

初始化方法二:

int int_array[] = {1, 2, 3, 4, 5};

for(int i = 0; i < sizeof(int_array)/sizeof(int_array[0]); ++i)
{
    int_vector.push_back(int_vector[i]);

}

无论那种方法,都给人一种如鲠在喉的感觉。

那里有不方便,那里就有改进

C++11中扩展了使用花括号初始化变量的应用范围,称这种初始化方式为列表初始化

例如:

可以像下面这样初始化vector:

vector<int> int_vector = {5, 4, 3, 2, 1};

可以像下面这样初始化list:

list<int> int_list = {5, 4, 3, 2, 1};

甚至可以像下面这样初始化map

map<int, const char*> id2Name = {{1,"Zhang"},{2, "Wang"},{3, "Li"}};

另一种形式

下面和写法也合法,和上面的几种写法等价。

vector<int> int_vector{5, 4, 3, 2, 1};

list<int> int_list {5, 4, 3, 2, 1};

map<int, const char*> id2Name{{1,"Zhang"},{2, "Wang"},{3, "Li"}};

到此,关于“C++11列表初始化是怎样的”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: C++11列表初始化是怎样的

本文链接: https://lsjlt.com/news/295544.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C++11列表初始化是怎样的
    这篇文章主要介绍“C++11列表初始化是怎样的”,在日常操作中,相信很多人在C++11列表初始化是怎样的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++11列表初始化是怎样的”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-19
  • C++11系列学习之列表初始化
    目录前言:旧标准初始化方式C++11标准初始化方式初始化列表技术细节总结前言: 由于旧标准初始化方式太过繁杂,限制偏多,因此在新标准中统一了初始化方式,为了让初始化具有确定的效果,于...
    99+
    2024-04-02
  • C++11关联容器的列表怎么初始化
    本篇内容介绍了“C++11关联容器的列表怎么初始化”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是关联容器关联容器(associativ...
    99+
    2023-06-19
  • C++11中列表初始化机制的概念是什么
    本篇内容介绍了“C++11中列表初始化机制的概念是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!概述定义:列表初始化是C++11引入的新...
    99+
    2023-06-25
  • C++11中初始化列表initializer lists的使用方法
    C++11引入了初始化列表来初始化变量和对象。自定义类型,如果想用初始化列表就要包含initializer_list头文件。 C++11将使用大括号的初始化(列表初始化)作为一种通用...
    99+
    2024-04-02
  • C++成员初始化列表
    文章转自: 公众号:Coder梁(ID:Coder_LT) 除了可以使用构造函数Classy::Classy(int n, int m): mem1(n), mem2(0), mem...
    99+
    2024-04-02
  • C++11新特性之列表初始化的具体使用
    目录统一的初始化方法列表初始化的一些使用细节初始化列表1、任何长度的初始化列表2、std::initialzer-list的使用细节列表初始化防止类型收窄在我们实际编程中,我们经常会...
    99+
    2024-04-02
  • C++是怎么构造函数的初始化列表
    C++是怎么构造函数的初始化列表,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1.问题class A {private:int m_a;publi...
    99+
    2023-06-22
  • C++11中列表初始化机制的概念与实例详解
    目录概述 实现机制详解 POD类型的列表初始化 含有构造函数的类的列表初始化(C++11) 列表初始化用于函数返回值 引入std::initializer_list 代码验证 应用 ...
    99+
    2024-04-02
  • C++11类内初始化怎么实现
    本篇内容主要讲解“C++11类内初始化怎么实现”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++11类内初始化怎么实现”吧!重复的初始化代码考察下面的代码:enum LineStyle{&nb...
    99+
    2023-06-19
  • 解析之C++的列表初始化语法
    目录聚合初始化大括号省略(brace elision)std::initializer_list的另一个故事连《Effective Modern C++》都弄错了的规则构造函数的两步...
    99+
    2024-04-02
  • C++初始化列表的方法有哪些
    本篇内容介绍了“C++初始化列表的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、类的初始化表首先是类中使用构造函数时的初始化表...
    99+
    2023-07-05
  • C++学习之初始化列表详解
    目录前言一、类的初始化表二、initializer_list前言 本文主要介绍C++中地初始化列表 目前对初始化列表应该有两个方面的定义,一个是类的构造函数中使用的那个初始化表,另一...
    99+
    2023-03-19
    C++初始化列表 C++ 列表
  • C++学习笔记之初始化列表
    目录一、用初始化列表初始化对象1.初始化列表用法2.初始化列表特性二、explicit关键字1.内置类型的隐式转换2.如何避免单参构造函数初始化发生隐式类型转换三、匿名对象1.匿名对...
    99+
    2023-05-17
    c++ 初始化列表 如何初始化列表 c++ 初始化
  • C++11新特性中如何进行列表初始化的具体使用
    这篇文章给大家介绍C++11新特性中如何进行列表初始化的具体使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在我们实际编程中,我们经常会碰到变量初始化的问题,对于不同的变量初始化的手段多种多样,比如说对于一个数组我们...
    99+
    2023-06-29
  • C++深入讲解初始化列表的用法
    目录一、小问题二、类成员的初始化三、类中的 const 成员四、初始化与赋值的不同五、小结一、小问题 下面的类定义是否合法 如果合法,ci 的值是什么,存储在哪里 下面编写代码一探...
    99+
    2024-04-02
  • C++构造函数的初始化列表详解
    目录1.问题2.解决方法(初始化列表)3.顺序问题总结 1.问题 class A { private: int m_a; public: A(int a) { cout ...
    99+
    2024-04-02
  • c++构造函数初始化列表的方法是什么
    在C++中,构造函数初始化列表是一种在构造函数中初始化成员变量的方法。它使得在对象创建时直接初始化成员变量,而不是在构造函数体中进行...
    99+
    2024-03-12
    c++
  • C++初始化函数列表详细解析
    在以下三种情况下需要使用初始化成员列表: 一,需要初始化的数据成员是对象的情况; 二,需要初始化const修饰的类成员; 三,需要初始化引用成员数据; 原因:C++可以定义引用类型的...
    99+
    2022-11-15
    初始化函数列表
  • C++示例讲解初始化列表方法
    目录定义特性初始化阶段计算阶段成员变量的初始化顺序定义 我们先来看一个例子 Date(int year, int month, int day)//带参构造函数 :_...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作