当前位置: 首页 > article >正文

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

一. 什么是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
http://www.lryc.cn/news/2415786.html

相关文章:

  • 华为C++笔试题
  • 【AI视野·今日CV 计算机视觉论文速览 第304期】Thu, 7 Mar 2024
  • 苹果商店开发者能不能不找到评论人_顶风作案!“涉黄” App 一夜登顶榜首,苹果清词、清榜不够狠?...
  • 子域名收集 -- Esd
  • 流星蝴蝶剑修改大全
  • 先验概率、最大似然估计、贝叶斯估计、最大后验概率
  • promise对象与ajax的爱情故事,还有JSON
  • shell中declare命令
  • ps4三国战纪服务器维护,PS4三国战纪游戏心得 最快升级方法
  • SDK(Software Development Kit)
  • 3.Magento的布局(Layout),块(Block)和模板(Template)
  • 直播商城系统源码直播带货app源码短视频直播平台
  • perl的chomp重要性
  • microsoft html 帮助,Microsoft HTML Help Workshop(CHM文件生成)
  • 123123123
  • scrapy爬取京东的数据
  • java基础之:集合
  • MySQL查看数据库状态命令详解
  • 情侣网站开源源码-带后台
  • httpclient发送Get请求和Post请求
  • OpenLayers源码解析2 View.js
  • sql的IndexOf和LastIndexOf
  • Android Studio gradle build error: PKIX path building failed解决方法
  • C语言执行效率如何保证,看这一文就够了!
  • Smoke Test和Ad hoc Test
  • 让你的计算机也能提供云桌面服务:搭建私有云
  • 基于LinkedhashMap实现的LRU算法
  • 【高级部署】-Kubernetes K8S理论篇
  • JavaScript:求学生成绩案例及错误分析。
  • linux就该这么学pdf+下载链接