STL---Vector常用接口介绍及模拟实现

本文详细介绍了C++STL中的vector容器,包括其特点、构造、接口使用(如begin、end、resize、push_back、pop_back等)、遍历方法以及迭代器失效问题。通过示例展示了vector的使用和常见操作,同时讨论了如何避免迭代器失效引发的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. 什么是vector?

vector(向量)是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector 同属于STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型, 可以广义上认为是数组的增强版

特点:

1. vector是表示可变大小数组的序列容器,采用的连续存储空间来存储元素,可以采用下标对vector的元素进行访问

2.它的大小是可以动态改变的,而且它的大小会被容器以一种有效的方式动态增长,因此相对于数组占用了更多的存储空间。

2.与其它动态序列容器相比(deque, list and forward_list), vector在访问元素的时候更加高效,在末尾添加和删除元素相对高效。对于其它不在末尾的删除和插入操作,效率更低。

二. vector的使用

在使用vector时需要包含头文件

#include<vector>

2.1 常用接口:

构造函数
(constructor)构造函数声明 接口说明
vector()(重点) 无参构造
vector(size_type n, const value_type& val = value_type()) 构造并初始化n个val
vector (const vector& x); (重点) 拷贝构造
vector (InputIterator first, InputIterator last); 使用迭代器进行初始化构造
iterator 的使用
iterator的使用 接口说明
begin + 
end(重点)
获取第一个数据位置的iterator/const_iterator, 获取最后一个数据的下一个位置的iterator/const_iterator
rbegin + rend 获取第一个数据位置的iterator/const_iterator, 获取最后一个数据的下一个位置的iterator/const_iterator
Capacity容量
容量空间 接口说明
size 获取数据个数
capacity 获取容量大小
empty 判断是否为空
resize(重点) 改变vector的size
reserve (重点) 改变vector的capacity
增删查改
vector增删查改 接口说明
push_back(重点) 尾插
pop_back (重点) 尾删
find 查找(这个是算法模块实现,不是vector的成员接口)
insert 在position之前插入val
erase 删除position位置的数据
swap 交换两个vector的数据空间
operator[] (重点) 像数组一样访问

 2.2 功能代码演示

2.2.1 vector的构建
void test()
{
    vector<int> first;                                // 无参构造
    vector<int> second(4, 100);                       // 使用4个1
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

张呱呱_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值