c++学习笔记-----vector

一、vector的介绍及使用(一)什么是vector?vector是C++标准模板库中的部分内容,中文偶尔译作“容器”,但并不准确。它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。它的内部成员实际上是start、finish和endofstorage三个指针构成,起始指针为start,而finish指向最后一个数据,也就是size大小
摘要由CSDN通过智能技术生成

一、vector的介绍及使用

(一)什么是vector?
vector是C++标准模板库中的部分内容,中文偶尔译作“容器”,但并不准确。它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。
在这里插入图片描述
它的底层是由双端队列数据结构实现的。其内部成员实际上是start、finish和endofstorage三个指针构成,起始指针为start,而finish指向最后一个数据,也就是size大小就为finish-start,endofstorage是指向空间的最后一位,也就是capacity大小就为endofstorage-start;
(二)vector常用接口及实现

1.构造函数、拷贝构造和析构函数。
在这里插入图片描述

			//vector构造函数
			vector()
				:_start(nullptr)
				,_finish(nullptr)
				,_endofstoage(nullptr)
			{
   }
			//拷贝构造
			//比如要开名为v的5个1的空间则定义为vector<int> v(5,1);
			vector(int n, const T& value = T())
				:_start(nullptr)
				, _finish(nullptr)
				, _endofstoage(nullptr)
			{
   
				reserve(n);
				while (n--)
				{
   
					push_back(value);
				}
			}

			template<class InputIterator>
			//拷贝构造函数:传入原vector类型的_fist和_finish;
			//比如要开一个V2,和V1一样大小的空间,则v2(v1.begin(),v1.end());
			vector(InputIterator first, InputIterator last)
				:_start(nullptr)
				, _finish(nullptr)
				, _endofstoage(nullptr)
			{
   
				reserve(last - first);
				while (first != last)
				{
   
					push_back(*first);
					first++;
				}
			}
			//v2(v1);
			vector(const vector<T>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ishao97

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值