怎么给老板提供网站建设资料,怎么做动漫小广告视频网站,淘宝网官方网站购物商城,wordpress登入插件文章目录 1. 基本概念2. 容器2.1. 容器的分类2.2. vector2.2.1. 构造vector对象2.2.2. vector的赋值 1. 基本概念
STL#xff08;Standard Template Library#xff0c;标准模板库)是惠普实验室开发的一系列软件的统称#xff0c;现在已经成为C标准库的重要组成部分。STL的… 文章目录 1. 基本概念2. 容器2.1. 容器的分类2.2. vector2.2.1. 构造vector对象2.2.2. vector的赋值 1. 基本概念
STLStandard Template Library标准模板库)是惠普实验室开发的一系列软件的统称现在已经成为C标准库的重要组成部分。STL的从广义上讲分为三类algorithm算法、container容器和iterator迭代器容器和算法通过迭代器可以进行无缝地连接。STL实现了数据结构和算法的分离。STL具有高可重用性、高性能和高移植性的特点。 高可重用性STL中几乎所有的代码都采用了类模板和函数模板的方式实现这相比于传统的由函数和类组成的库来说提供了更好的代码重用机会。高性能STL采用了高效的数据结构和算法。高移植性STL是C标准库的一部分可以方便地跨项目、跨平台移植。
2. 容器
2.1. 容器的分类
序列式容器 每个元素都有固定位置元素的位置取决于插入时机和地点和元素值无关。vector、deque、list、stack、queue 关联式容器 元素位置取决于容器特定的排序准则和插入顺序无关。set、multiset、map、multimap 常用容器列表 容器名描述头文件向量(vector)也称为动态数组在内存中连续存储元素。它具有自动扩展大小的能力支持随机访问和快速在末尾插入/删除元素。vector列表(list)也称为链表由一系列节点链接而成。每个节点存储元素和指向下一个节点的引用。列表支持在任意位置插入/删除元素但访问和搜索元素的性能较低。list双队列(deque)双向队列是一种特殊的队列允许在两端进行插入和删除操作。它具有向量和列表的特性可以高效地在队列的任一端添加或删除元素。deque集合(set)集合是一组唯一元素的容器不允许重复。它提供了高效的搜索和插入操作但不保持元素的顺序。set多重集合(multiset)多重集合类似于集合但允许元素重复。set栈(stack)栈是一种后进先出LIFO的数据结构类似于一堆盘子。元素只能从栈顶插入和删除。stack队列(queue)队列是一种先进先出FIFO的数据结构类似于排队。元素只能从队列的一端插入另一端删除。queue优先队列(priority_queue)优先队列是一种特殊的队列元素按照优先级顺序进行插入和删除。具有最高优先级的元素始终排在队列的前面。queue映射(map)映射是一种键值对Key-Value的数据结构每个键关联一个值。它提供了高效的键值查找常见操作包括插入、删除和修改键值对。map多重映射(multimap)多重映射类似于映射但允许多个键关联相同的值。map
2.2. vector
2.2.1. 构造vector对象
默认构造vectorT vec; // T替换为要存储的数据的类型带参构造// 构造长度为n的vector对象
vectorT vec(n);// 构造长度为n、初始值为val的vector对象
vectorT vec(n, val); // 用构造好的vector对象构造新的vector对象
vectorT vec1(n, val);
vectorT vec2(vec1);
vectorT vec2(vec1.begin(), vec1.end());// 用数组构造vector对象
T arr[n] {0};
vectorT vec(arr, arr n);2.2.2. vector的赋值