STL的版本很多,常见的有HP STL、PJ STL、 SGI STL等。STL可分为容器(containers)、迭代器(iterators)、空间配置器(allocator)、配接器(adapters)、算法(algorithms)、仿函数(functors)六个部分。

在实际的开发过程中,数据结构本身的重要性不会逊于操作于数据结构的算法的重要性,当程序中存在着对时间要求很高的部分时,数据结构的选择就显得更加重要。

经典的数据结构数量有限,但是我们常常重复着一些为了实现向量、链表等结构而编写的代码,这些代码都十分相似,只是为了适应不同数据的变化而在细节上有所出入。STL容器就为我们提供了这样的方便,它允许我们重复利用已有的实现构造自己的特定类型下的数据结构,通过设置一些模板类,STL容器对最常用的数据结构提供了支持,这些模板的参数允许我们指定容器中元素的数据类型,可以将我们许多重复而乏味的工作简化。

容器部分主要由头文件,,,,,和组成。对于常用的一些容器和容器适配器(可以看作由其它容器实现的容器),可以通过下表总结一下它们和相应头文件的对应关系。

序列式容器

向量(vector) 连续存储的元素

列表(list) 由节点组成的双向链表,每个结点包含着一个元素

双端队列(deque) 连续存储的指向不同元素的指针所组成的数组

适配器容器

栈(stack) 后进先出(LIFO)的值的排列

队列(queue) 先进先出(FIFO)的值的排列

优先队列(priority_queue) 元素的次序是由作用于所存储的值对上的某种谓词决定的的一种队列

关联式容器

集合(set) 由节点组成的红黑树,每个节点都包含着一个元素,节点之间以某种作用于元素队的谓词排列,没有两个不同的元素能够拥有相同的次序

多重集合(multiset) 允许存在两个次序相等的元素的集合

映射(map) 由{键,值}对组成的集合,以某种作用于键对上的谓词排列

多重映射(multimap) 允许键对有相等的次序的映射

对(pair) 和map类似,但只有一对键值

智能指针(auto_ptr) 将一个用new开辟内存的指针赋给auto_ptr,会自动回收空间

c++面试题之标准模板库相关推荐

  1. 信息学奥赛中的STL(标准模板库)--2022.09.30

    1.信息学奥赛一本通 第5版 第8章 C++实用技巧与模版库(6节) 第一节  排序算法 第二节 运算符重载 第三节  字符串(string) 第四节 FIFO队列和优先队列 第五节  动态数组 第六 ...

  2. C++标准模板库STL学习

    STL是所有C++编译器和所有操作系统平台都支持的一种库,可以用于所有C++语言编译器和所有平台(Windows/Unix/Linux..).当然标准查模板库中的所有算法,也可以自己用C/C++来实现 ...

  3. C++ 笔记(19)— 标准模板库(STL容器、STL迭代器、STL算法、STL容器特点、STL字符串类)

    C++ 标准库可以分为两部分: 标准函数库: 这个库是由通用的.独立的.不属于任何类的函数组成的.函数库继承自 C 语言. 面向对象类库: 这个库是类及其相关函数的集合. C++ 标准库包含了所有的 ...

  4. 提高C++性能的编程技术笔记:标准模板库+测试代码

    标准模板库(Standard Template Library, STL)是容器和通用算法的强效组合. 渐近复杂度:算法的渐近复杂度是对算法性能的近似估计.它是算法集到特定性能标准集的映射.如果需要对 ...

  5. C++中标准模板库std::vector的实现

    以下实现了C++标准模板库std::vector的部分实现,参考了 cplusplus. 关于C++中标准模板库std::vector的介绍和用法可以参考 https://blog.csdn.net/ ...

  6. C++中标准模板库std::pair的实现

    以下用C++实现了标准模板库中的std::pair实现,参考了 cplusplus 和 vs2013中的utility文件. 关于std::pair的介绍和用法可以参考: https://blog.c ...

  7. STL 简介,标准模板库

    作者:Scott Field 这篇文章是关于C++语言的一个新的扩展--标准模板库的(Standard Template Library),也叫STL.     当我第一次打算写一篇关于STL的文章的 ...

  8. Part10 泛型程序设计与C++标准模板库 10.1泛型程序设计及STL的结构

    1泛型程序设计的基本概念 泛型程序设计: 编写不依赖于具体数据类型的程序 将算法从特定的数据结构中抽象出来,成为通用的 C++的模板为泛型程序设计奠定了关键的基础 术语:概念 用来界定具备一定功能的数 ...

  9. 第二十三模板 18标准模板库

    //第二十三模板 18标准模板库 //1 容器 容器是包含其他对像的对像,标准C++ 库中提供了一系列的容器类 //可以分为两种类型,顺序和关联类型,顺序容器可提供对自身元素的顺序或者随机访问,关联容 ...

最新文章

  1. 精益分析体系构建如何“因企制宜”?
  2. Windows 路由追踪tracert命令使用示例
  3. mac下使用自带的apache与php
  4. Linux 内核链表剖析(二十)
  5. HTML第八章ppt,第八章 web基础教程之HTML篇v1.0.ppt
  6. LeetCode Palindrome Partitioning II
  7. mysql 数据库event_mysql数据库事件调度(Event)
  8. 小红书回应赴港IPO:暂无明确计划
  9. 【OpenCV入门教程之二】 一览众山小:OpenCV 2.4.8 or OpenCV 2.4.9组件结构全解析(转)...
  10. 楚留香服务器维护时间,《一梦江湖》手游官方网站_《楚留香》现已全面升级重制-3月9日维护更新公告...
  11. 数据存储的未来,磁带是赢家?!
  12. 关于苹果MFI认证那些事
  13. 基于VHDL的密码锁
  14. 【面试】为什么面试完,总是让你回去等通知?
  15. Kernel Panic - not syncing: VFS:
  16. idea 使用 git 回退到某个历史版本
  17. 谈谈企业管理软件领域内那些很难稳定重现故障的处理技巧
  18. Jenkins定时发布项目
  19. 10岁男孩玩游戏花掉1万2,和妈妈打欠条通过家务和学习成绩“还债”
  20. 单体架构(Monolith)与微服务架构(MicroService)

热门文章

  1. Java学习日记----反射
  2. java正则表达式入门文档
  3. No sleep, no sex, no life,程序员这次忍不了了
  4. CodeForces - 867E Buy Low Sell High (贪心 +小顶堆)
  5. 用cascade删除有约束的表或记录
  6. Vcenter5.5安装部署:[2]web client的安装
  7. SQL Server表分区的NULL值问题
  8. C#学习笔记(一)变量 常量 基本数据类型 其它
  9. 《当幸福敲门》克里斯·加德纳
  10. [Vuex系列] - Vuex中的getter的用法