STL : vector 矢量容器

这篇具有很好参考价值的文章主要介绍了STL : vector 矢量容器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

Vector

Capacity

Elements access

Modifiers

Allocator

Non-member Notice overloads

Template specializations


Vector

  • #include<vector>    using namespace std;

  • 矢量容器 :单向开口的连续内存空间,底层封装:数组;

  • 预留内存空间不够时,可以动态扩展(容器满了则新建容器同时进行拷贝);

  • 顺序序列:容器元素按照严格的线性顺序排列;

  • 动态数组:支持对序列中任意元素进行快速直接访问,高效的随机访问的容器;

  • 越靠后的插入或删除执行效率越高,删除不会释放限制的空间;

  • 拥有一段连续的内存空间,支持随机存取,但在中间进行插入和删除会造成内存块的拷贝;

  • Vector 接口函数介绍。

STL : vector 矢量容器文章来源地址https://www.toymoban.com/news/detail-413647.html

Capacity

Name Role Notice
size 返回矢量实际存储元素数目(实际数据量)
max_size 返回矢量所能存储的最大的元素数目
resize 更改矢量实际存储,可自定义默认值填充 resize(num)
resize(num, elem)
capacity 不分配内存的情况下可以存储的最多元素个数
empty 判断矢量存储是否为空
reserve 更改矢量 capacity,避免 push_back 自动分配 reverse(len),预留空间,不可初始化,不可赋值
shrink_to_fit 请求降低存储使得 capacity 和 size 匹配

Elements access

Name Role Notice
operator[ ] 迭代器访问容器元素
at 更加安全的访问元素,能判别是否越界并确定程序中止
front 返回第一个元素的引用
back 返回最后一个元素的引用
data (c11) 返回一个指向数组中第一个元素的指针(向量内部使用)

Modifiers

Name Role Notice
assign 替换旧元素为向量元素分配新值,也可修改向量大小 assign(begin, end)
assign(n, elem)
push_bach 向矢量的末尾添加元素
pop_back 删除矢量最后一个元素
insert 指定位置插入一个或多个元素(构造并复制) insert(iter, elem)
insert(iter,count,elem)
insert(pos, _first, _last)
erase 删除元素 erase(pos)
erase(_first, _last)
swap 交换容器,内存释放(拷贝构造,capacity == size )
clear 清除容器
emplace 指定位置插入一个元素(就地构造,转发实现)
emplace_back 矢量末尾插入一个元素(就地构造,转发实现)

Allocator

Name Role Notice
get_allocator 返回矢量的内存分配器

Non-member Notice overloads

Name Role Notice
relational operators 关系型函数( =、>、<)
swap 交换容器的内容

Template specializations

Name Role Notice
vector 特殊的标准容器,1 bit 存储(byte 可实现动态位集),返回的不是 bool &,而是一个代理对象

到了这里,关于STL : vector 矢量容器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C++ —— STL容器【vector】模拟实现

    本章代码gitee仓库:vector模拟实现、vector源码 看源码发现 vector 是类模板定义的,成员是采用迭代器进行管理 当涉及到容器类时,通常有一些关键函数,如构造函数、析构函数和拷贝构造函数,它们负责初始化容器对象、销毁对象和进行对象的拷贝等 这里注意拷贝构造要实现

    2024年02月16日
    浏览(46)
  • C++提高编程——STL:string容器、vector容器

    本专栏记录C++学习过程包括C++基础以及数据结构和算法,其中第一部分计划时间一个月,主要跟着黑马视频教程,学习路线如下, 不定时更新,欢迎关注 。 当前章节处于: ---------第1阶段-C++基础入门 ---------第2阶段实战-通讯录管理系统, ---------第3阶段-C++核心编程, -----

    2024年01月23日
    浏览(49)
  • 【C++STL】“vector“容器的模拟实现

    🎉博客主页:小智_x0___0x_ 🎉欢迎关注:👍点赞🙌收藏✍️留言 🎉系列专栏:C++初阶 🎉代码仓库:小智的代码仓库 这里的 iterator 是 typedef T* iterator; 定义来的, T 是模板参数。 _start 是指向开始的指针变量。 _finish 是指向最后一个元素的下一位的指针变量。 _endofstorage 是

    2024年02月16日
    浏览(41)
  • STL之vector容器的介绍与模拟实现

    所属专栏:C“嘎嘎\\\" 系统学习❤️ 🚀 博主首页:初阳785❤️ 🚀 代码托管:chuyang785❤️ 🚀 感谢大家的支持,您的点赞和关注是对我最大的支持!!!❤️ 🚀 博主也会更加的努力,创作出更优质的博文!!❤️ vector的文档介绍 vector是表示可变大小数组的序列容器。 就像

    2024年01月21日
    浏览(45)
  • C++ stl容器vector的底层模拟实现

    目录 前言:   1.成员变量,容量与大小 2.构造函数 无参构造: 带参的使用值进行构造:  使用迭代器区间进行构造: 3.交换 4.拷贝构造 5.赋值重载 6.迭代器 7.扩容 reserve: resize: 8.插入与删除 insert: erase: insert迭代器失效问题: erase迭代器失效问题: 9.头插头删 10.[]重载

    2024年04月15日
    浏览(42)
  • 【C++庖丁解牛】STL之vector容器的介绍及使用 | vector迭代器的使用 | vector空间增长问题

    🍁你好,我是 RO-BERRY 📗 致力于C、C++、数据结构、TCP/IP、数据库等等一系列知识 🎄感谢你的陪伴与支持 ,故事既有了开头,就要画上一个完美的句号,让我们一起加油 vector的文档介绍 vector是表示可变大小数组的序列容器。 就像数组一样,vector也采用的连续存储空间来存

    2024年03月14日
    浏览(79)
  • STL标准模板库 vector容器与迭代器入门

    vector 就是一个连续的数据 C++11 std::vector a ={1,4,2,6,7}; 可以使用花括号来定义 容器的功能就是存储数据 迭代器的功能就是指向数据,并且可以实现前后移动(指针)算法和容器的接口的存在 vector功能是长度可变的数组, 身在栈上 里面的数据存储在堆上 因为栈不可动态扩容

    2023年04月23日
    浏览(47)
  • STL容器篇之array与vector(学习篇)

    array 是STL 中一个容器, 是一个 定值数组 相当于C语言中 array[5]. 在C++中, 使用容器都要使用想对应的头文件 例如: 使用array这个容器,就要使用 这个头文件 二种方法 : 第一种 :array数据类型, 大小 对象; 赋值 : 例如:arrayint , 3 = {0, 2, 4}; 第二种 : 用new array数据类

    2023年04月09日
    浏览(38)
  • 【C++入门】STL容器--vector底层数据结构剖析

    目录  前言  1. vector的使用       vector的构造  vector迭代器  vector空间相关的接口  vector 功能型接口  find  swap  insert  erase 2. vector内部数据结构剖析 reserve  push_back和pop_back size、capacity、empty、operator[ ];  insert和erase resize swap  拷贝构造和赋值重载 构造函数补充  迭代器

    2024年01月25日
    浏览(57)
  • 【C++】:C++中的STL序列式容器vector源码剖析

    vector定于与stl_vector.h头文件中 例如: vector的数据结构非常简单:一个线性连续空间 下面介绍vector的3个数据结构: start:表示目前使用空间的头 finish:表示目前使用空间的尾 end_of_storage:表示目前可用空间的尾 说明:为了降低空间配置时的速度成本,vector实际配置的大小可

    2024年01月22日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包