STL教程
文章平均质量分 72
Chiang木
这个作者很懒,什么都没留下…
展开
-
STL教程(十六):算法
以有限的步骤,解决逻辑上的或数学上的问题,称为算法。为了提高算法的灵活性和功效,STL的算法允许使用者自定义一些操作(函数),提供给算法调用,这些函数可以是一般函数,也可以是仿函数(struct或类里的“()”重载函数)。要使用 STL中的算法函数必须包含头文件<algorithm>,STL中算法分类:非可变序列算法----指不直接修改其所操作的容器内容的算法 可变序列算法----指可以修改它们所操作的容器内容的算法 排序算法----包括对序列进行排序和合并的算法、搜索算法以及有原创 2022-03-02 17:53:50 · 562 阅读 · 0 评论 -
STL教程(十五): 函数对象-- std::bind
一、介绍template <class Fn, class... Args> bind (Fn&& fn, Args&&... args);可将std::bind函数看作一个通用的函数适配器,它接受一个可调用对象,返回基于fn的函数对象,但其参数绑定到args。每个参数可以绑定到一个值或者是一个占位符:如果绑定到一个值,调用返回的函数对象将始终使用该值作为参数。 如果是占位符,则调用返回的函数对象会转发传递给调用的参数且调用返回的对象返回原创 2022-03-02 17:38:14 · 412 阅读 · 0 评论 -
STL教程(十四): 函数对象-- std::function
一、介绍template< class R, class... Args >class function<R(Args...)>;类模板 std::function 是通用的多态函数包装器。 std::function 的实例能够存储、复制及调用任何符合可调用 (Callable)、可拷贝的(CopyConstructible)目标——普通函数、 lambda 表达式、 成员函数指针、bind 表达式或其他函数对象。 它也是对 C++ 中现有的可调用实体的一种类型安.原创 2022-01-18 20:48:48 · 703 阅读 · 0 评论 -
STL教程(十三): 适配器--stack
一、stack简介template <class T, class Container = deque<T> > class stack;参数说明:T:元素的类型stack::value_type Container :存储元素的内部底层容器对象的类型--stack::container_type,默认为deque<T>stack是一种容器适配器,专门设计用于执行 LIFO(后进先出)操作的适配器,其元素仅从适配器的一端进行插入和提取。...原创 2022-01-16 17:19:21 · 386 阅读 · 0 评论 -
STL教程(十二): 适配器--priority_queue
一、priority_queue简介template< class T, class Container = std::vector<T>, class Compare = std::less<typename Container::value_type>> class priority_queue;参数说明:T:元素的类型priority_queue::value_type Container :存储元素的内部底层容器对...原创 2022-01-16 17:12:11 · 616 阅读 · 0 评论 -
STL教程(十一): 适配器--queue
一、queue简介template <class T, class Container = deque<T> > class queue;参数说明:T:元素的类型queue::value_type Container :存储元素的内部底层容器对象的类型,queue::container_type,默认为queue被实现为容器适配器,是一种 FIFO(先进先出)数据结构,它们是使用特定容器类的封装对象作为其底层容器的类,提供一组特定的成员函数来访问其元素。..原创 2022-01-16 11:16:13 · 474 阅读 · 0 评论 -
STL教程(十): 关联容器--unordered_map/unordered_multimap
一、unordered_map/unordered_multimap简介template< class Key, class T, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, class Allocator = std::allocator< std::pair<const Key, T> >> class u..原创 2022-01-16 10:41:35 · 1026 阅读 · 0 评论 -
STL教程(九): 关联容器--unordered_set/unordered_multiset
一、unordered_set/unordered_multiset简介template< class Key, class Hash = std::hash<Key>, class KeyEqual = std::equal_to<Key>, class Allocator = std::allocator<Key>> class unordered_multiset;参数介绍:Key:元素的类型,即类型为.原创 2022-01-16 10:22:41 · 520 阅读 · 0 评论 -
STL教程(八): 关联容器--multimap/map
一、multimap/map简介template< class Key, class T, class Compare = std::less<Key>, class Allocator = std::allocator<std::pair<const Key, T> >> class map;参数介绍:Key:map的键的数据类型 T:map的值的数据类型 ...原创 2022-01-14 20:55:24 · 446 阅读 · 0 评论 -
STL教程(七): 关联容器--multiset/set
一、set简介set的底层实现通常是红黑树,其元素的值和标识它的键是同一个值,并且每个值必须是唯一的。std::set是一个关联容器,其中包含一组已排序的唯一类型的对象Key。排序是使用键比较函数Compare 完成的。搜索、删除和插入操作具有对数复杂性。在标准库使用比较要求的任何地方,唯一性都是通过使用等价关系确定的。用不精确的术语来说,两个对象a和b被认为是等价的,如果两者的比较都不小于另一个:!comp(a, b) &&!comp(b, a).集合是按照特定顺序存储..原创 2022-01-08 16:49:59 · 1025 阅读 · 0 评论 -
STL教程(六): 序列容器--array
一、array简介template < class T, size_t N > class array;参数介绍: T:包含的元素的类型,即array::value_type。 N:array容器包含元素的数量array是固定大小的序列容器,元素存储在连续的内存位置,指向元素的指针可以进行偏移以访问其他元素,且随机访问的时间是恒定的。容器使用隐式构造函数和析构函数来静态分配所需的空间。它的大小N是编译时常量,并且不通过分配器管理其元素的分配:它们是...原创 2022-01-15 12:19:24 · 407 阅读 · 0 评论 -
STL教程(五): 序列容器--deque
一、deque介绍这里直接给出官方给的解释,就不多说了,免得发生误解:deque是具有动态大小的序列容器,可以在两端(前端或后端)扩展或收缩。特定的库可能以不同的方式实现deque,但通常底层都是某种形式的动态数组,而且deque也支持随机访问,因此,它们提供了类似于vector的功能。但和vector不同的是,在deque的开头也可以有效地插入和删除元素,而不仅仅是在其末尾。但是deque不能保证将其所有元素存储在连续的存储位置,即deque通过将指针偏移访问另一个元素可能会导致未定义的行为原创 2022-01-03 22:32:13 · 575 阅读 · 0 评论 -
STL教程(四): 序列容器--forward_list
一、forward_list简介template< class T, class Allocator = std::allocator<T>> class forward_list;参数介绍: T:包含的元素的类型,即array::value_type。 Allocator:一个分配器,用于获取/释放内存以及构造/销毁该内存中的元素forward_list是一个序列容器,它的底层实现为单向链表,允许在序列中的任何位置进行恒...原创 2022-01-15 12:50:50 · 794 阅读 · 0 评论 -
STL教程(三): 序列容器--list
一、list介绍list和vector一样,也是一种序列容器,并且允许在序列内的任何地方进行恒定时间插入和擦除操作。/*T 可以是任意数据类型Allocator:空间配置器,用于获取/释放内存以及构造/销毁该内存中的元素的分配器,默认为allocator(new/delete),一般不做修改。*/template<class T,class Allocator = std::allocator<T>>class list;list是由双向链表实现的,每个节点原创 2021-12-30 21:03:00 · 1229 阅读 · 0 评论 -
STL教程(二): 序列容器--vector
一、vector介绍vector是定义在命名空间std内的模板,是一种随机迭代器,其内存管理是一个一块连续分配的内存,支持动态扩展,其头文件是< vector>:/*T 可以是任意数据类型Allocator:空间配置器,用于设置内存模型,默认为allocator(new/delete),一般不做修改。*/template <class T,class Allocator=allocator<T>>class vector;二、vector的成员函原创 2021-12-26 14:15:22 · 3625 阅读 · 0 评论 -
STL教程(一): 标准模板库--STL概述
STL是C++通用库,主要由迭代器、算法、容器、仿函数、内存分配器和配接器组成。STL主要的主要功能都被声明在13个头文件中,它们分别是:< algorithm >、< deque >、< functional >、< iterator>、< vector>、< list>、< map>、< memory>、< numeric>、< queue>、< set>、< st原创 2021-12-26 13:57:31 · 3461 阅读 · 0 评论