C++初阶学习第八弹——探索STL奥秘(三)——深入刨析vector的使用

05-28 1144阅读

string(上):C++初阶学习第六弹——探索STL奥秘(一)——标准库中的string类-CSDN博客

string(下):C++初阶学习第七弹——探索STL奥秘(二)——string的模拟实现-CSDN博客

前言:

在前面我们已经学习了string的使用和模拟实现,它们在使用上有异曲同工之妙,所以在学习了string之后我们再学习vector就会容易很多,下面跟着我的脚步我们来学习一下vector的具体用法

目录

一、vector的基本概念

二、vector的使用

2.1 vector在库中的存在方式及常见接口

2.2 vector的构造

2.3 vector迭代器的使用

2.4 vector的空间增长问题

2.5 vector的增删查改

三、总结


一、vector的基本概念

vector和string一样,都是属于C++模板库中的部分:

Vector,中文名称为“向量”,是C++ STL(Standard Template Library,标准模板库)中的一种数据结构,它是一个动态数组,可以动态地增加或减少其大小。vector在内存中是连续存储的,这意味着它的所有元素都存储在内存中相邻的位置。

基本概念:

vector是一个模板类,定义在头文件(include)中。可以使用vector来存储任意类型的对象,包括自定义类型。

vector有以下几个重要的特点:

  1. 可动态增长:vector可以动态地增加其大小,无需重新分配内存。
  2. 可动态缩小:vector可以动态地缩小其大小,释放不需要的内存。
  3. 支持随机访问:vector支持随机访问,这意味着可以通过下标快速访问vector的元素。
  4. 支持插入和删除:vector支持在头或尾插入和删除元素,但在中间插入和删除元素的效率较低。

二、vector的使用

接下来我们就来学习一下vector的基本使用方法,由于之前我们已经有了string的学习基础,所以在下面我们会讲的较为快速一些,主要就讲一下vector的几个比较常用的用法,我们的重心还是放在后面vector的模拟实现上

2.1 vector在库中的存在方式及常见接口

我们先来看一下vector在库中的存在形式

C++初阶学习第八弹——探索STL奥秘(三)——深入刨析vector的使用

这其中涉及到类模板和容器的问题,这些目前我们还没有学到,等我们后面学到了再讲

vector由于是一个容器,它支持不同类型的数据进行操作,所以这个写法上与string还是有不少区别,如vector在定义一个变量时的方式为:

vector v1;
vector v2;
vector v3;

我们先来看一下vector的一些比较重要的接口函数:

C++初阶学习第八弹——探索STL奥秘(三)——深入刨析vector的使用

下面我们就先来讲一下几个比较重要的接口函数

2.2 vector的构造

vector的构造方式上与string并没有太大区别,主要也是无参的默认构造,初始化构造,拷贝构造等,没有太大的难度,下面的讲解会直接给出代码实例

C++初阶学习第八弹——探索STL奥秘(三)——深入刨析vector的使用

代码实例如下:

#include
#include
using namespace std;
// 1、测试vector的几种构造方法
void test1_vector()
{
	vector();    //这种的会发生隐式类型转换,但只在本行起作用
	vector v1;   //无参构造
	vector v2(10, 100);   //构造一个vector有10个100
	vector v3(v2);    //拷贝构造
	vector v4(v2.begin(), v2.end());   //迭代器构造
	//下面还有一种迭代器构造的方式,这里涉及了迭代器的初始化,我们在下面会讲
	int arr[] = { 16,2,77,29 };
	vector v5(arr, arr + sizeof(arr) / sizeof(int));
	cout 
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]