ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++STL概述1

2022-02-07 21:30:39  阅读:132  来源: 互联网

标签:容器 头文件 迭代 map STL 元素 C++ 队列 概述


STL基本概念

  • 容器:可容纳各种数据类型的通用数据结构,是类模板

  • 迭代器:可用于依次存取容器的元素,类似于指针

  • 算法:用于操作容器中的元素的函数模板

    • sort()来对一个vector中的数据进行排序

    • find()来搜索一个list中的对象

算法本身与他们操作的数据的类型无关,因此它们可以在从简单数组到高度复杂容器的任何数据结构上使用。

容器概述

顺序容器:

概述

容器并非排序的,元素插入位置同元素的值无关

vector——动态一维数组

头文件

元素在内存连续存放。随机存取任何元素都能在常数时间完成

尾端增删元素具有较佳的性能(大部分是常数时间)

deque——双向队列

头文件

元素在内存连续存放。随机存取任何元素都能在常数时间完成(相比vector比较慢)

两端增删元素具有较佳的性能(大部分是常数时间)

list——双向链表

头文件

元素在内存不连续存放,不支持随机存放

任何位置增删元素都能在常数时间里完成

关联容器:

概述

  • 元素是排序
  • 插入任何元素,都按相应的排序规则来确定位置
  • 在查找时具有较好性能
  • 通常以平衡二叉树的方式实现,插入和检索都是log(n)

set/multiset

头文件

set即集合。set中不允许相同元素,multiset中允许

map/multimap

头文件

map和set的不同在于map中存放的元素有且只有两个成员变量,一个为first,一个为second

map根据first值对元素进行从小到大排序,并可快速地根据first来检索元素

map与multimap的不同在于,map不允许相同的first值的元素

容器适配器:

stack(栈)

头文件

栈。是项的有限序列,并满足序列中被删除、检索和修改的项只能是最近插入序列的项栈顶的项)

后进先出

queue(单向队列)

头文件

队列。插入只可以在尾部进行;

删除、检索和修改允许从头部进行

先进先出

priority_queue(优先级队列)

头文件

优先级队列:队列里面维持某种有序

最高优先级元素总是第一个出列

顺序容器与关联容器中共有的成员函数

  • begin():返回指向容器中第一个元素的迭代器

  • end():返回指向容器中最后一个元素后面位置的迭代器

  • rbegin():返回指向容器中最后一个元素的迭代器

  • rend():返回指向容器第一个元素前面位置的迭代器

  • erase():从容器中删除一个或者几个元素

  • clear():清空容器

顺序容器常用成员函数

  • front():返回容器中第一个元素引用

  • back():返回容器中最后一个元素引用

  • push_back():在容器末尾增加新元素

  • pop_back():删除容器末尾的元素

  • erase():删除迭代器指向的元素(可能会使迭代器失效)

    ​ 或者删除一个区间,返回被删除元素后面元素的迭代器

标签:容器,头文件,迭代,map,STL,元素,C++,队列,概述
来源: https://blog.csdn.net/Hacker_ccc/article/details/122815048

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有