vector 的六种 创建和初始化方法「建议收藏」

vector 的六种 创建和初始化方法「建议收藏」C++的初始化方法很多,各种初始化方法有一些不同。(1):vector<int>ilist1;  默认初始化,vector为空,size为0,表明容器中没有元素,而且capacity也返回0,意味着还没有分配内存空间。这种初始化方式适用于元素个数未知,需要在程序中动态添加的情况。(2):vector<int>ilist2(ilist);vector&lt…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

C++的初始化方法很多,各种初始化方法有一些不同。

(1): vector<int> ilist1;

    默认初始化,vector为空, size为0,表明容器中没有元素,而且 capacity 也返回 0,意味着还没有分配内存空间。这种初始化方式适用于元素个数未知,需要在程序中动态添加的情况。

(2): vector<int> ilist2(ilist);

vector<int> ilist2  = ilist; 

两种方式等价 ,ilist2 初始化为ilist 的拷贝,ilist必须与ilist2 类型相同,也就是同为int的vector类型,ilist2将具有和ilist相同的容量和元素

(3): vector<int> ilist = {1,2,3.0,4,5,6,7};

 vector<int> ilist {1,2,3.0,4,5,6,7};

ilist 初始化为列表中元素的拷贝,列表中元素必须与ilist的元素类型相容,本例中必须是与整数类型相容的类型,整形会直接拷贝,其他类型会进行类型转换。

(4): vector<int> ilist3(ilist.begin()+2,ilist.end()-1);

ilist3初始化为两个迭代器指定范围中元素的拷贝,范围中的元素类型必须与ilist3 的元素类型相容,在本例中ilist3被初始化为{3,4,5,6}。注意:由于只要求范围中的元素类型与待初始化的容器的元素类型相容,因此迭代器来自不同的容器是可能的,例如,用一个double的list的范围来初始化ilist3是可行的。另外由于构造函数只是读取范围中的元素进行拷贝,因此使用普通迭代器还是const迭代器来指出范围并没有区别。这种初始化方法特别适合于获取一个序列的子序列。

(5): vector<int> ilist4(7);

默认值初始化,ilist4中将包含7个元素,每个元素进行缺省的值初始化,对于int,也就是被赋值为0,因此ilist4被初始化为包含7个0。当程序运行初期元素大致数量可预知,而元素的值需要动态获取的时候,可采用这种初始化方式。

(6):vector<int> ilist5(7,3);

指定值初始化,ilist5被初始化为包含7个值为3的int


内容主要来自于===>  C++primer习题集(第五版)P198


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192125.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python+Tensorflow+Opencv人脸识别(任意数量人脸)[通俗易懂]

    Python+Tensorflow+Opencv人脸识别(任意数量人脸)[通俗易懂]Python+Tensorflow+Opencv的人脸识别简单的人脸识别准备工作开始——先获取必要的人脸图像训练——分类吧识别大脸简单的人脸识别一直想做机器学习的东东,最近由于工作的调整,终于有开始接触的机会了,哈哈。本文主要代码是来源于“就是这个七昂”的博文,传送门在此:https://blog.csdn.net/qq_42633819/article/details/81191308。”就…

    2022年6月7日
    35
  • 跨平台移动APP开发进阶(三):hbuilder+mui mobile app 开发心酸路

    跨平台移动APP开发进阶(三):hbuilder+mui mobile app 开发心酸路1.问题描述:在实现图片轮转时,若将mui(“#slider”).slider({interval:5000});置于图片加载之前,图片不会显示,解决措施:将其置于图片显示之后才会显示。2.问题描述:同上面的问题,会遇到报指针为null的异常。若要获取一个组件的id,可能带获取的组件还未加载,导致获取失败。解决措施:将获取组件id的js脚本

    2022年5月31日
    39
  • MySQL数据库:读写分离

    MySQL数据库:读写分离

    2021年4月9日
    157
  • 具有指令流水线结构的cpu_cpu流水线技术

    具有指令流水线结构的cpu_cpu流水线技术为什么小小一个CPU,有那么多周期(Cycle)?程序的性能,是由三个因素相乘来衡量的,“指令数×CPI×时钟周期”。和周期相关的只有一个时钟周期,即CPU主频的倒数。一个CPU的时钟周期可以认为是可以完成一条最简单的计算机指令的时间。那为何构造CPU时,有那么多周期?单指令周期处理器一条CPU指令的执行,由FDE三步组成。这个执行过程,至少需花费一个时钟周期。因为在取指令的时候,我们需要通过时钟周期的信号,来决定计数器的自增。很自然,我们希望能确保让这样一整条指令的执行,在一个时钟周期内完成

    2022年8月20日
    11
  • 调用ShellExecute所须要头文件

    调用ShellExecute所须要头文件

    2021年12月7日
    56
  • matlab读取txt文件指定行_matlab中if判断中返回

    matlab读取txt文件指定行_matlab中if判断中返回MATLAB提供了一系列低层输入输出函数,专门用于文件操作。本文提供了几种Matlab读写文件的方法和预写的脚本。

    2025年9月23日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号