当前位置: 首页 > 编程笔记 >

“ STL”和“ C ++标准库”之间有什么区别?

韩弘方
2023-03-14
本文向大家介绍“ STL”和“ C ++标准库”之间有什么区别?,包括了“ STL”和“ C ++标准库”之间有什么区别?的使用技巧和注意事项,需要的朋友参考一下

标准模板库(STL)是C ++编程语言的软件库,影响了C ++标准库的许多部分。它提供了四个组件,分别称为算法,容器,函数和迭代器。请注意,术语“ STL”或“标准模板库”在ISO 14882 C ++标准中没有显示。因此,将C ++标准库称为STL是错误的,即STL和C ++标准库是2种不同的东西,前者是后者的子集。

STL由

货柜

STL包含序列容器和关联容器。容器是存储数据的对象。标准序列容器包括向量,双端队列和列表。标准关联容器包括set,multiset,map,multimap,hash_set,hash_map,hash_multiset和hash_multimap。还有一些容器适配器队列,priority_queue和堆栈,它们是具有特定接口的容器,使用其他容器作为实现。

迭代器

迭代器是使程序员能够遍历容器的对象。STL实现五种不同类型的迭代器:输入(用于读取值序列),输出(用于写入值序列),正向(可读取,写入和向前移动),双向(类似于正向)迭代器,但也可以向后移动)和随机访问(一次操作可自由移动任意数量的步骤)。迭代器是允许STL具有通用性的主要功能。

演算法

STL中的算法是专门设计用于元素范围的功能的集合。范围是可以通过迭代器或指针访问的任何对象序列,例如一些STL容器的数组或实例。STL中的算法示例:sort(对范围中的元素进行排序),binary_search(测试值是否按排序顺序存在),min_element(返回范围中的最小元素)等。请注意,所有这些算法都可以应用于任何可接受的数据类型作为模板。

在C ++编程语言中,C ++标准库是用核心语言编写的类和函数的集合,并且是C ++ ISO标准本身的一部分。C ++标准库提供了几个通用容器,利用和操作这些容器的函数,函数对象,通用字符串和流(包括交互式和文件I / O),对某些语言功能的支持以及日常任务(例如查找正方形)的功能数字的根。以下是C ++标准库的一些功能-

这些库用于处理C ++中可用的不同类型的流。例如,流通常表示文件流,此类可用于创建文件,向文件写入信息以及从文件中读取信息,流表示字符串流,通常用于操作字符串等。

货柜

这是一个类的集合,这些类用于以各种数据类型(例如向量,集合,映射,堆栈,队列等)存储数据。这些是STL的组成部分。

普通图书馆

库,例如算法,时间计时,迭代器,内存等。

数值库

该库是C ++程序可以用来执行半数值运算的组件的集合。例如,<complex>定义了一个类模板,并提供了许多表示和处理复数的函数,<random>用于生成(伪)随机数,等等。

穿线

这是C ++ 11中引入的库,基本上处理并发。

C标准库

C标准库中的每个标头都以不同的名称包含在C ++标准库中,该名称是通过删除.h并在开头添加“ c”生成的;例如,“ time.h”变为“ ctime”。

 类似资料:
  • 问题内容: 我知道一个API称为一组用于调用某些东西的函数,一个库是一个类的集合,但是像这样的包中的API实际上是什么?我可以在不使用任何API的情况下连接到类似的类,那么为什么我们称其为J2SE API而不是J2SE软件包? 问题答案: 直接来自维基百科: 在计算机科学中,应用程序编程接口(API)是定义应用程序可以从库请求服务的方式的接口 Java在那些软件包中包含许多库(Swing等),而A

  • 问题内容: 在此示例中: 无法编译为: 而被编译器接受。 这个答案说明唯一的区别是,与不同,它允许您稍后引用类型,似乎并非如此。 是什么区别,并在这种情况下,为什么不第一编译? 问题答案: 通过使用以下签名定义方法: 并像这样调用它: 在jls§8.1.2中,我们发现(有趣的部分被我加粗了): 通用类声明定义了一组参数化类型(第4.5节), 每种可能通过类型arguments调用类型参数节的类型

  • 我是Struts 2的新手。我想知道Struts 2和Struts 2 jQuery标签之间的区别?

  • 问题内容: cacerts和密钥库之间有什么区别? 如果我使用在这些链接中找到的定义cacerts和keystore,则它们似乎是证书的集合,但是是在(Java)分布式系统的上下文中。SSL连接期间使用哪一个进行身份验证?两者还是只是其中之一,还是交替? 问题答案: “ cacerts”是一个信任库。信任库用于验证对等方。密钥库用于验证您的身份。

  • 问题内容: 在Go的整个Google App Engine文档中,它们可互换使用库。这是一个例子: 我应该使用哪些库?主要区别是什么? 问题答案: cloud.google.com/go/datastore是Cloud Datastore rest API(可从任何地方使用)的客户端库。 google.golang.org/appengine/datastore是App Engine API的一部

  • 问题内容: 数据访问对象(DAO)和存储库模式之间有什么区别?我正在使用Enterprise Java Beans(EJB3),Hibernate ORM作为基础结构以及域驱动设计(DDD)和测试驱动开发(TDD)作为设计技术来开发应用程序。 问题答案: 是 数据持久性 的抽象。 是 对象集合 的抽象。 会被认为更接近数据库,通常以表为中心。 将被视为更接近域,仅处理汇总根。 可以使用来实现,但您