STL基础

1、刷题网站
https://v judge.net/
www.nowcoder.com
https://pintia.cn/
2、万能头公式
#include<bits/stdc++.h>
3、时间复杂度
4、容器
A、string
(https://blog.youkuaiyun.com/liitdar/article/details/80498634)
B、vector
https://blog.youkuaiyun.com/qq_42188312/article/details/102450665?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161111153516780262540494%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161111153516780262540494&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_click~default-1-102450665.first_rank_v2_pc_rank_v29&utm_term=vector&spm=1018.2226.3001.4187
C、queue
https://blog.youkuaiyun.com/cindywry/article/details/51919282?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control
D、stack
https://blog.youkuaiyun.com/sunprice/article/details/82920645?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161115282816780255256058%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161115282816780255256058&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-1-82920645.first_rank_v2_pc_rank_v29&utm_term=c++中stack&spm=1018.2226.3001.4187
E、set
https://blog.youkuaiyun.com/yas12345678/article/details/52601454?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161115288116780265417977%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161115288116780265417977&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-1-52601454.first_rank_v2_pc_rank_v29&utm_term=c++中set&spm=1018.2226.3001.4187
F、map
https://blog.youkuaiyun.com/qiuxia1015/article/details/84558402?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161115296016780271527223%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161115296016780271527223&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-2-84558402.first_rank_v2_pc_rank_v29&utm_term=c++中map&spm=1018.2226.3001.4187
G、list
https://blog.youkuaiyun.com/yas12345678/article/details/52601578?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161115301516780262547618%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161115301516780262547618&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-1-52601578.first_rank_v2_pc_rank_v29&utm_term=c++中list&spm=1018.2226.3001.4187
H、multiset
https://blog.youkuaiyun.com/sodacoco/article/details/84798621?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161115337716780264053174%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161115337716780264053174&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-2-84798621.first_rank_v2_pc_rank_v29&utm_term=c++中multiset&spm=1018.2226.3001.4187
I、priority_queue
https://blog.youkuaiyun.com/weixin_36888577/article/details/79937886?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161115347316780266254089%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161115347316780266254089&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-1-79937886.first_rank_v2_pc_rank_v29&utm_term=c++中priority_queue&spm=1018.2226.3001.4187
J、deque
https://blog.youkuaiyun.com/xuxinrk/article/details/89068269?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161115354916780299034234%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161115354916780299034234&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-1-89068269.first_rank_v2_pc_rank_v29&utm_term=c++中deque&spm=1018.2226.3001.4187
K、unordered_map
https://blog.youkuaiyun.com/qq_21997625/article/details/84672775?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161115364516780265411701%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161115364516780265411701&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-1-84672775.first_rank_v2_pc_rank_v29&utm_term=c++中unordered_map&spm=1018.2226.3001.4187
5、函数
A、sort
https://blog.youkuaiyun.com/qq_40486952/article/details/83280212?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161115308416780274112251%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161115308416780274112251&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduend~default-2-83280212.first_rank_v2_pc_rank_v29&utm_term=c++中sort&spm=1018.2226.3001.4187
B、reverse
https://blog.youkuaiyun.com/hellohake/article/details/109341264?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161115313516780264083957%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=161115313516780264083957&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allbaidu_landing_v2~default-1-109341264.first_rank_v2_pc_rank_v29&utm_term=c++中reverse&spm=1018.2226.3001.4187
C、next—permutation
https://blog.youkuaiyun.com/weixin_38505045/article/details/88364293?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522161115326316780266245298%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=161115326316780266245298&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v29-2-88364293.first_rank_v2_pc_rank_v29&utm_term=c++中next_permutation&spm=1018.2226.3001.4187

### STL(标准模板库)基础知识介绍 #### 什么是STL STL (Standard Template Library - 标准模板库),是C++标准库的关键部分,不仅提供了大量可复用的组件,还构建了一个包含多种数据结构和算法的软件框架[^1]。 #### 主要组成部分 STL主要由四个核心概念组成: - **容器(Container)** 容器用于存储不同类型的对象集合。常见的容器包括`vector`, `list`, `deque`, `set`, `map`等。每种容器都有各自的特点和适用场景。例如,`list`是一种双向链表,在任意位置插入或删除元素的时间复杂度为O(1)[^5]。 - **迭代器(Iterator)** 迭代器用来遍历容器中的元素。它们类似于指针,可以指向容器内的某个特定位置,并允许顺序访问相邻的数据项。通过迭代器操作,程序员能够以统一的方式处理各种不同的容器类型。 - **算法(Algorithm)** 提供了一系列通用的操作函数,如排序(`sort`)、查找(`find`)、复制(`copy`)等。这些算法被设计成独立于具体容器实现的形式,因此具有高度灵活性和广泛的适应性。对于自定义数据结构也可以轻松应用相应的算法逻辑[^4]。 - **仿函数(Function Object 或 Functor)** 类似于普通函数的对象实例化形式,通常用于定制某些行为模式下的比较规则或是其他运算方式。比如在使用`std::sort()`时可以通过传递一个仿函数来自定义排序依据。 ```cpp // 自定义仿函数示例 struct CompareById { bool operator()(const TDeviceInfo& lhs, const TDeviceInfo& rhs) { return strcmp(lhs.achDeviceId, rhs.achDeviceId) < 0; } }; ``` #### 使用优势 采用STL带来的益处显而易见: - 减少重复造轮子的工作量; - 利用了经过严格验证的标准库代码,提高了系统的稳定性和安全性; - 可以依赖专家级开发者优化后的高效能实现方案; - 推动了良好编码习惯的发展,促进了团队协作交流[^3]。 #### 实际应用场景举例 当涉及到UI界面展示有序列表的情况时,往往需要先对后台维护的数据集按照一定条件完成预处理工作——即排序过程。此时就可以借助STL所提供的强大工具箱来简化任务难度并提升性能表现。假设有一个保存着多个设备基本信息记录的数组,则可以直接调用内置方法对其进行快速排列组合。 ```cpp #include <algorithm> #include <string.h> bool compareByName(const TDeviceInfo &a, const TDeviceInfo &b){ return strcmp(a.achDeviceName,b.achDeviceName)<0; } int main(){ std::vector<TDeviceInfo> devices = /*...*/; // 对devices按名字升序排序 std::sort(devices.begin(), devices.end(), compareByName); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值