vector的初始化及深入探讨(持续更新)

说到vector的初始化,那么我们首先应该对初始化的概念了解清楚。更深一步我们要了解c++所有的初始化方法,体会里面的关系。

首先介绍什么叫做初始化

当对象在创建时获得了一个特定的值,我们说这个对象被初始化了。(这句话引自《c++ primer》(第五版))

c++的一些关于初始化的名词:

1、默认初始化

形如int a; 就是采取的默认初始化,这种初始化我们没有指定初始值。

长辈给子女起名字都会有一定的含意,那么默认初始化的含意是什么呢?

默认:在没有指定初始值的情况下,被初始化的对象一般被指定为某一个特定的值。

初始化:要符合初始的概念,对象的确被指定了一个值。

一般函数内部定义的变量不会默认初始化,函数外部的定义的变量才能进行默认初始化。

数组里面的元素是可以进行默认初始化的。

2、值初始化

使用()、{}但是没有指定初始值的初始化叫作值初始化。

形如 vector<int> (10) 只是给了容器内部的容纳元素数量没有指定初始值。

3、直接初始化和拷贝初始化       

直接初始化是利用()并且指定初始值来进行初始化。

拷贝初始化是利用 = 来进行初始化操作。

4、列表初始化 

采用 { } 来进行初始化操作的初始化。(括号里面不为空哦,并且要和变量的类型一样)

 

《c++ primer》(第五版)告诉我们:“这几种初始化方式一般可以互相等价地使用,不过也并非一直如此。”

一、在使用拷贝初始化时(使用=时),只能提供一个初始值。

二、如果提供的是一个类内初始值,只能用 = 或者 {} 形式初始化,“记住不能使用圆括号。”

三、“如果提供的是初始元素值的列表,则只能把初始值都放在花括号里进行列表初始化,而不能放在圆括号里。”

原文链接: https://www.cnblogs.com/qyse/p/14417303.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    vector的初始化及深入探讨(持续更新)

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/208285

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月12日 下午11:19
下一篇 2023年2月12日 下午11:19

相关推荐