C++ STL
文章平均质量分 88
STL-容器
肥喵王得福_ฅ・ω・ฅ
熬夜冠军
展开
-
STL- 容器特点总结
STL即C++标准模板库,包含了诸多常用的基本数据结构和基本算法。为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件的可复用性。STL包含6大组件+13个头文件。6大组件: 关于 STL1. 序列式容器2. 关联式容器3. 容器适配器 关于 STLSTL即标准模板库(Standard Template Library)。STL包含 6大组件+13个头文件。 六大组件:容器、算法、迭代器、仿函数、适配器、分配器 这六大组件的交互关系: contain..原创 2021-02-20 18:07:58 · 1095 阅读 · 0 评论 -
C++11 std::array
std::array是在C++ 11标准中增加的STL容器,它的设计目的是提供与原生数组类似的功能与性能。也正因此,使得std::array有很多与其他容器不同的特殊之处,比如:std::array的元素是直接存放在实例内部,而不是在堆上分配间;std::array的大小必须在编译期确定。std::array的构造函数、析构函数和赋值操作符都是编译器隐式声明的…… 概述1. std::array1. 1 常用函数1. 2 构造函数 概述 std::array底层是一段连续的.原创 2021-02-24 14:40:34 · 5831 阅读 · 1 评论 -
c++ set、unordered_set
总结:set是STL中的一种关联容器。元素值本身val 就是键-key。因此容器中元素是唯一的。set内部采用红黑树实现,因此容器内部的数据都是有序的。由于底层是红黑树,set的插入、删除操作复杂度为O(logN),查找的复杂度基本为O(logN)。set容器中元素的值不能在容器进行修改,但可以对元素进行插入、删除操作。 1. set1.1 构造、常用函数1.2 1. set1.1 构造、常用函数at 返回key对应value的引用begin 返回..原创 2021-02-20 15:07:59 · 1110 阅读 · 2 评论 -
C++ std::unordered_map
unordered_map底层基于哈希表实现,拥有快速检索的功能。unordered_map是STL中的一种关联容器。容器中元素element成对出现(std::pair),element.first是该元素的键-key,容器element.second是该元素的键的值-value。unordered_map中每个key是唯一的,插入和查询速度接近于O(1)(在没有冲突的情况下),但是其内部元素的排列顺序是无序的。 1. unordered_map 底层原理2. 功能函数2.1 构造函数2.2..原创 2021-02-14 22:32:10 · 19814 阅读 · 1 评论 -
C++ 容器中 begin()、cbegin()、rbegin()、crbegin
1、迭代器 begin(), end()begin()2、反向迭代器 rbegin(), rend()<1>. begin() 和end() 操作产生指向容器内第一个元素和最后一个元素的下一个位置的迭代器,如下所示。这两个迭代器通常用于标记包含容器中所有元素的迭代范围。std::vector<int> vec;vec.begin() 返回一个迭代器,它指向容器c的第一个元素vec.end() 返回一个迭代器,它指向容器c的最后一个元素的下一个位置vec.原创 2021-02-02 16:08:23 · 20325 阅读 · 0 评论 -
C++ std::deque
重点:deque: double-end queue,双端队列std::deque 不像 vector 把所有的对象保存在一块连续的内存块,而是采用多个连续的存储块,在一个映射结构中对这些内存块及顺序进行跟踪。优点快速地随机访问,支持[ ]操作符和at()。首尾两端进行快速的push、pop操作O(1),支持其他位置插入和删除操作O(n) 。缺点:内存占用较多。 1. deque、构造函数1.1 deque简介 1. deque、构造函数1.1 deque简介 std::dequ.原创 2021-02-02 11:09:03 · 4495 阅读 · 0 评论 -
C++ queue、priority_queue
重点总结:std::queue 是一个先进先出(FIFO)的容器,故std::queue不提供元素的任何迭代器操作。std::queue 是一种容器适配器,std::deque和std::list满足FIFO操作需求。queue底层默认使用std::deque。std::queue 容器只能访问头元素和尾元素。只能在容器的末尾添加新元素,只能从头部移除元素。 1. 构造函数1. 构造函数...原创 2021-02-01 17:50:10 · 331 阅读 · 0 评论 -
C++ std::stack
重点总结:Stack是一个一个先进后出(FILO)的容器,为了严格遵循FILO,Stack不提供元素的任何迭代器操作。Stack 是一个容器类的改编,提供特定的函数来访问元素。Stack 只能从容器的一端(栈顶)进行插入、删除、访问操作。Stack的基本操作示意图如下所示。本文参考自std::stack。 1. Stack与构造函数2. empty()、size()3. push()、pop()、top()4. swap()、emplace() 1. Stack与构造函数 st.原创 2021-02-01 16:13:09 · 1539 阅读 · 0 评论 -
C++ std::pair
重点总结: 1. 构造函数2. 元素访问-operator[], at()1. 构造函数头文件#include <utility>构造函数<1>. 默认构造函数,Constructs a pair object with its elements value-initialized.原型如下:constexpr pair();<2>. Copy/Move 构造函数,原型如下:template<class U, class V&g..原创 2021-02-01 10:31:51 · 761 阅读 · 0 评论 -
c++ std::map
重点总结:map 是STL的一个关联容器。里面的数据都是成对出现的,第一个是关键字(key),每个关键字只能在map中出现一次。第二个是该关键字的值(value)[底层] map內部的实现自建一颗红黑树,这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的。[优缺点]map的插入、删除操作复杂度O(logN),查找的复杂度基本是O(logN)。 1. 常用函数2. operator[], at()3. insert()4. find(), count() 1. 常用函数..原创 2021-01-29 16:14:47 · 837 阅读 · 1 评论 -
c++ std::list
重点总结List是stl实现的双向链表,它允许快速的插入和删除List一、pandas是什么?一、pandas是什么?原创 2020-11-30 15:55:34 · 1115 阅读 · 0 评论 -
c++ std::vector
single element (1) iterator insert (const_iterator position, const value_type& val); fill (2) iterator insert (const_iterator position, size_type n, const value_type& val); range (3) template <class InputIterator> iterator insert (cons原创 2020-11-17 16:55:04 · 1962 阅读 · 0 评论