C++ STL 基本容器使用一、STL简介STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。它被容纳于C++标准程序(C++ Standard Library)中,是ANSI/ISO C++标准中最新的也是极具革命性的一部分。该库包含了诸多在计算机科学领域里所常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展的应用
1. STL有6种序列容器类型
1 vector 向量 相当于一个数组 在内存中分配一块连续的内存空间进行存储。支持不指定vector大小的存储。STL内部实现时,首先分配一个非常大的内存空间预备进行存储,即capacituy()函数返回的大小,当超过此分配的空间时再整体重新放分配一块
STL的容器可以分为以下几个大类:
一:序列容器, 有vector, list, deque, string.二 : 关联容器, 有set, multiset, map, mulmap
hash_set,hash_map, hash_multiset, hash_multimap
三: 其他的杂项: stack, queue, valarray, bitset
1.容器=数据结构+算法。相当于是为复杂的数据设计一种专门用于存放该数据的东西。用于开发中传递复杂的数据。2.模板函数只能写在头文件中,不能单独声明。3.STL容器分为三类:(1).顺序容器类vector 数组。查询快,插入慢。加入的数据与数据大小有关操作: empty() – 返回bool型,表示vector是否为空(v.empty() )size() – 返回vector内元素个数 (v.si
个人总结STL 中有队列的标准实现,为什么不用呢?但是如果想要用阻塞队列,那么必须要自己用锁构建了。下面是转载的详细:--------------------------------------------------------------------我是无情的分割线-----------------------------------------------------------------
一、STL容器类1.1 STL介绍容器就是盛放东西的东西,这里被盛放的一般是数据对象,用来盛放的是容器类容器类的内核就是:数据结构 + 算法STL(Standard Template Library,标准模板库)STL从广义上分为:容器(container)算法(algorithm)迭代器(iterator)1.2 STL六大组建容器:各种数据结构,如vector、list、deque、set、m
文章目录前言一、概念1.1 顺序容器1.2 容器适配器1.3 关联容器二、程序示例1. vector和Set自定义数据类型的访问2.vector容器嵌套3.list容器排序4.pair对组的使用总结 前言STL是C++中的基于数据结构和算法的标准模板库,可以大量节约系统开发时间,增加程序复用性。 STL的六大件包括容器、算法、迭代器、仿函数、适配器和空间配置器,其中几乎所有代码均使用了模板类和模
转载
2024-09-07 17:45:57
84阅读
std::atomic介绍模板类std::atomic是C++11提供的原子操作类型,头文件 #include<atomic>。在多线程调用下,利用std::atomic可实现数据结构的无锁设计。和互斥量的不同之处在于,std::atomic原子操作,主要是保护一个变量,互斥量的保护范围更大,可以一段代码或一个变量。std::atomic确保任意时刻只有一个线程对这个资源进行访
原创
精选
2022-03-12 18:29:22
10000+阅读
std::vector 和 std::list 区别? std::vector 和 std::list 是 C++ 标准库中两种不同的容器类型,它们之间有以下几个主要区别: 存储结构: std::vector 是连续内存空间上的动态数组,元素在内存中是连续存储的。 std::list 是基于双向链表
原创
2024-03-30 17:16:14
1246阅读
根据侯捷老师的介绍,STL > 我们常说的标准库函数 。STL(Standard Template Library)中还包括了容器(containers),迭代器(iterators),算法(algorithms),分配器(allocators),适配器(adapters),仿函式(functors)。他们之间的关系如下所示:迭代器是算
转载
2024-04-23 11:31:30
18阅读
一、std::map 容器1、std::map 容器简介2、std::map 容器排序规则3、std::map 容器底层实现二、代码示例 - std::map 容器1、代码示例2、执行结果
原创
2024-01-07 12:29:55
403阅读
std::cout需要使用缓冲机制,而std::cerr不使用缓冲机制,因此在输出错误信息时通常会实时显示。这使得在程序发生错误时能够及时获得相关信息,有助于快速定位和调试问题。 然而,由于std::cerr不使用缓冲机制,每次输出都会直接写入终端,这可能会导致频繁的I/O操作,影响程序的性能。相比之下,
原创
2023-10-31 16:16:33
451阅读
std::jthread是C++20新引入的线程类,与 std::thread 类似,或者说,jthread是对thread进一步的封装,功能更强大。std::jthread的j实际上是joining的缩写,众所周知,std::thread在其生命周期结束时调用join()(让主线程等待该子线程完成,然后主线程再继续执行,对于不会停止的线程,不要使用join(),防止阻塞其他线程),或调
原创
2022-04-03 01:25:45
10000+阅读
QList< T >是迄今为止最常用的容器类,它储存给定数据类型T的一系列数值,相对于其他Qt容器类,QList被高度优化。QList< T >维护了一个指针数组,该数组存储的指针指向QList< T >存储的列表项的内容。因此它提供了基于下标的快速访问。 对于不同的数据类型,QList采取不同的存储策略:如果T是一个指针类型或指针大小的基本类型(即该类型所占的
STL 常用容器一. 容器基本概述二. vector1. vector 初始化2. 常用函数3. 遍历三. deque四. map/ multimap五. set/ multiset六. list 一. 容器基本概述STL是C/C++开发中一个非常重要的模板,而其中定义的各种容器也是非常方便使用。STL中的常用容器包括:顺序性容器(vector、deque、list)、关联容器(map、set)
转载
2024-06-12 11:52:15
432阅读
所有代码都在Visual Studio 2017下测试过,应该是C++14标准。1 std::string头文件:<string>功能:提供一系列字符串的操作生成一个std::string对象 using namespace std;
string strs; // 生成一个空的字符串
string s(str); //生成一个和str内容完全相同的字符串(浅拷贝)
string
转载
2024-05-30 23:42:55
30阅读
常用的STL容器(每一个容器就是一个类模板,大致分为顺序容器,适配器容器,关联容器。 1.顺序容器(按照线性次序的位置存储数据,即第一,第二,,第三,依次类推,常用的顺序容器是vector,string,deque,list). (1)向量容器(vector) |v[0]|v[1]|v[2]…|v[n-1]|[增长的空间] | 表头 表尾 以上为vector容器v的存储方式 若初始分配空间不够,当
转载
2024-04-06 22:17:49
31阅读
stl里的容器按元素在容器内的排列方式,可以分为序列式和关联式两种。 所谓序列式容器,其中的元素时可序的,即元素集合呈线性关系。 C++本身提供了一个序列式容器array,stl提供了vector,list,deque,stack,queue,priority_queue等序列容器。其中stack和queue由于只是将deque盖头换面,在技术上称之为适配器。 1、V
转载
2024-09-06 09:45:08
68阅读
一.STP:在谈本主题之前,先简单的对STP(802.1d)做个回顾.STP是用于打破层2环路的协议,但这个协议有个最明显的缺点,就是当层2网络重新收敛的时候,至少要等待50秒的时间(转发延迟+老化时间).50秒的时间对于一个大型的层2网络来说,是一个漫长的过程(何况这只是个理论时间,实际情况还会更长).虽然CISCO对STP的这些缺点开发出了些弥补性的特性,比如Port Fast,Uplink
不可重复读不可重复读是指事务T1读取数据后,事务T2执行更新操作,使T1无法再现前一次读取结果。具体地讲,不可重复读包括三种情况:事务T1读取某一数据后,事务T2对其做了修改,当事务1再次读该数据时,得到与前一次不同的值。例如,T1读取B=100进行运算,T2读取同一数据B,对其进行修改后将B=200写回数据库。T1为了对读取值校对重读B,B已为200,与第一次读取值不一致。事务T1按一定条件从数
转载
2024-10-19 21:51:25
14阅读