stl
虔诚的学习者
这个作者很懒,什么都没留下…
展开
-
STL容器——自定义容器
1.定义MyList类#pragma once#include <list>template <class T>class MyList:public std::list<T>{public: typename std::list<T>::iterator append(const T& x = T()) { return std::list<T>::insert(this->end(), x); }};新原创 2022-04-08 16:49:41 · 369 阅读 · 0 评论 -
STL之算法——拷贝替换算法
一:介绍常用的STL拷贝替换算法包括copy,replace,replace_if,swap。二:copy:指定范围元素拷贝到另一个容器1.函数原型copy(iterator begin, iterator end, iterator begin2)2.操作#include <iostream>#include <algorithm>#include <vector>int main(){ vector<int> v原创 2022-03-30 16:47:55 · 314 阅读 · 0 评论 -
STL之算法——排序算法
一:介绍常用的STL排序算法包括sort,reverse,merge,random_shuffle。二:sort:对容器内元素进行排序1.函数原型sort(iterator begin, iterator end) 默认以升序方式对元素进行排序sort(iterator begin, iterator end, _Pred) 自定义方式对元素排序2.操作#include <iostream>#include <algorithm>#include &原创 2022-03-30 10:48:32 · 1819 阅读 · 0 评论 -
STL之算法——查找搜索统计算法
一:find:按值查找元素,找不到返回结束迭代器位置1.函数原型find(iterator begin, iterator end, value)2.操作#include <iostream>#include <algorithm>#include <vector>using namespace std;int main(){ vector<int> v{ 1,2,3,4 }; vector<int>原创 2022-03-29 16:08:49 · 208 阅读 · 0 评论 -
STL之算法——遍历算法
一:for_each1.函数原型for_each(iterator begin, iterator end, _func)2.操作#include <iostream>#include <algorithm>#include <vector>using namespace std;void op1(int val){//普通函数 cout << val << endl;}struct op2{//仿函数原创 2022-03-29 10:51:12 · 666 阅读 · 0 评论 -
modern C++集合——tuple
tuple:是一个固定大小的不同类型值的集合,是泛化的pair,类似于结构体。pair只能保存两个元素,而tuple理论上可以保存任意类型不同的元素。tuple从c++11开始引入。一:特点1.tuple不支持迭代,只能通过元素索引或者std::tie拆包后获取元素的值;且给定索引必须在编译期就给定,不能在运行期给,否则引发编译错误,如下tuple<int, char, double, string> t(1, 'a', 2.0, "jj");for (int i = 0; i原创 2022-03-28 15:48:06 · 1260 阅读 · 0 评论 -
STL之容器——map/multimap
map/multimap:由红黑树实现,元素为键值-实值。一:特点1.map为单重映射,键值和实值是一对一的关系,不允许重复键值;multimap是多重映射,允许相同键值,一个键值可以对应多个实值。2.具有自动排序功能,所有map里的数据都是有序的。3.map提供的[]操作符的重载;multimap未提供。二:定义与初始化map<int, int> m1;map<int, int, less<int>> m2; map<int,原创 2022-03-28 14:54:11 · 1596 阅读 · 0 评论 -
STL之容器——set/multiset
set/multiset:是关联容器,由红黑树实现。一:特点1.由红 黑树 实现,内部元素自动排序,元素位置和插入次序无关;2.set容器每个元素仅能出现一次,不允许重复;multiset允许重复元素;3.插入删除操作不需要内存拷贝和内存移动;4.修改元素值,是先删除原有元素,然后插入新的元素。二:定义与初始化set<int> s;//默认升序set<int, less<int>> s1 = { 1,2,3,4 };//升序{1,2,3,4原创 2022-03-28 11:43:30 · 1077 阅读 · 0 评论 -
STL容器——deque
随机访问方便; 可以在内部进行插入和删除操作; 可以在两端进行push和pop。时间复杂度:访问时间复杂度时O(1);插入时间复杂度:push_front为O(1),push_back为O(1),insert为O(n);删除时间复杂度:pop_front为O(1),pop_back为O(1),erase为O(n)。...原创 2022-03-28 10:40:09 · 844 阅读 · 0 评论 -
STL容器——list
一:list的特点1.list中每个元素存放于堆中,可以不连续,通过指针进行数据访问;2.随机访问效率低下;3.list没有提供[]操作符的重载;4.可以在任意位置插入删除,且效率高。二:list定义与初始化list<int> lst;//定义int型列表list<int> lst1(10);//size为10,默认值为0list<int> lst2(10, 10);//size为10,元素值为10list<int> ls原创 2022-03-25 17:21:38 · 459 阅读 · 0 评论 -
STL容器——vector
vector: 是一种序列式容器,和数组类似,但它比数组更优越。原创 2022-03-25 15:15:09 · 723 阅读 · 0 评论 -
STL之容器——介绍
容器一般分为序列容器(Sequence containers)和关联容器(Associative containers)。序列容器:每个元素均有固定位置,元素排列顺序和元素值无关,取决于元素的插入时机和地点。STL序列容器包括vector(向量), list(列表), deque(双端队列)。关联容器:元素位置取决于特定的排序准则及元素值,与元素的插入顺序无关。STL关联容器包括map(映射),set(集合),multimap(多重映射),multiset(多重集合)。STL除了序列容器和关联容原创 2022-03-25 10:07:31 · 1655 阅读 · 0 评论