STL标准函数库学习小总结
前言:
(1)学习资料——《算法笔记》第六章、《常用基础数据结构》文档
(2)测试平台——Codeup新家(《算法笔记》对应OJ)、洛谷、YCOJ
(3)学习时间——2020.6.2~
学习内容汇总:
一、Vector
1、简介:vector向量,也叫“变长数组”
2、运用:
(1)定义:vector<typename> name;
注意:typename可以是任意类型,但如果typename也是一个STL容器,则在“>>”之间需要打空格;name也可以是数组
(2)访问:①直接通过下标访问(0~size()-1)
②通过迭代器访问:vector<typename>::iterator it;
注意:只有vector和string支持*(it+i)的访问方式
(3)操作:①添加push_back()
②删除pop_back()
③插入insert()
④清空clear()
⑤删除erase(it)或erase(first,last)
⑥长度size()
(4)常见用途:①因为可以“变长”,所以对于储存数据很好用
②用邻接表存储图
3、题目:
(1)http://codeup.cn/contest.php?cid=100000596 (Codeup两道)
(2)打印锯齿矩阵(计蒜客)
二、Set
1、简介:set集合,可将元素去重并升序排列
2、运用:
(1)定义:set<typename> name; 注意同上
(2)访问:只能通过迭代器:set<typename>::iterator it;
(3)操作:①插入insert()
②返回set中对应值为value的迭代器find(value)
③删除erase(it)或erase(value)或erase(first,last)
④长度size()
⑤清空clear()
(4)常见用途:主要用于处理元素去重并排序的问题
(5)补充:①不去重只升序:multiset ②只去重不升序:unordered_set
3、题目:
(1)http://codeup.cn/contest.php?cid=100000597 (Codeup)
(2)http://120.77.248.79/problem/2021102 计算集合的并(YCOJ)
三、String
1、简介:string用于处理字符串
2、运用:
(1)定义:string s;
(2)读入读出:cin和cout
(3)迭代器:string::iterator it;
(4)可将两个string直接拼凑起来或进行比较大小(规则是字典序)
(5)操作:①长度length()或size()
②在pos位插入strinsert(pos,str)或将【it2,it3)插入到it的的位置insert(it,it2,it3)
③删除同vector或从pos位开始删除length个字符erase(pos,length)
④清空clear()
⑤返回从pos位开始长度为len的子串substr(pos,len)
⑥当str是s的子串时返回str第一次出现的位置find(str)或从s的pos位开始匹配str,返回值同上find(str,pos)
⑦把s从pos位开始、长度为len的子串替换为strreplace(pos,len,str)或把s的迭代器【it2,it3)范围的子串替换为strrelace(it2,it3,str)
3、题目:
(1)http://codeup.cn/contest.php?cid=100000598 字符串处理(Codeup)
四、Map
1、简介:map映射,将任一类型映射到任一类型且会按键自动升序
2、运用:
(1)定义:map<typename1,typename2> name;typename1为键的类型,typename2为映射值的类型
(2)访问:①通过下标访问,因为键的值唯一
②迭代器map<typename1,typename2>::iterator it;,然后用it->first来访问键、用it->second来访问值
(3)操作:①查找键为key的迭代器find(key)
②删除erase(it)或erase(key)删除键key或删除区间erase(first,last)
③长度size()
④清空clear()
3、常见用途:①字符与整数之间的关系
②map当作bool用
③字符串与字符串的映射
4、补充:一个键对应多个值,multimap
5、题目:
(1)http://codeup.cn/contest.php?cid=100000599 (Codeup)
(2)蒜头军破案——二维map (计蒜客)
(3)蒜头军的藏书——字符串与整数 (计蒜客)
(4)小信学英语——字符串与整数 (YCOJ)
(5)小信的面试 (YCOJ)
(6)水果店——二维map (YCOJ)
STL标准函数库学习小总结的更多相关文章
- C++STL标准库学习笔记(三)multiset
C++STL标准库学习笔记(三)multiset STL中的平衡二叉树数据结构 前言: 在这个笔记中,我把大多数代码都加了注释,我的一些想法和注解用蓝色字体标记了出来,重点和需要关注的地方用红色字体标 ...
- C++STL标准库学习笔记(一)sort
前言: 近来在学习STL标准库,做一份笔记并整理好,方便自己梳理知识.以后查找,也方便他人学习,两全其美,快哉快哉! 这里我会以中国大学慕课上北京大学郭炜老师的<程序设计与算法(一)C语言程序设 ...
- C++STL标准库学习笔记(五)set
前言: 在这个笔记中,我把大多数代码都加了注释,我的一些想法和注解用蓝色字体标记了出来,重点和需要关注的地方用红色字体标记了出来,这一篇后面主要都是我的记录了,为了防止大片蓝色字体出现,后面就不改蓝色 ...
- C++STL标准库学习笔记(二)二分查找
二.STL中的二分查找算法 1.binary_search 2.lower_bound 3.upper_bound 记得#include<algorithm>! 前言: 在这个笔记中,我把 ...
- C++STL标准库学习笔记(四)multiset续
自定义排序规则的multiset用法 前言: 在这个笔记中,我把大多数代码都加了注释,我的一些想法和注解用蓝色字体标记了出来,重点和需要关注的地方用红色字体标记了出来,只不过这一次的笔记主要是我的补充 ...
- 分治算法(二分查找)、STL函数库的应用第五弹——二分函数
分治算法:二分查找!昨天刚说不写算法了,但是突然想起来没写过分治算法的博客,所以强迫症的我…… STL函数库第五弹——二分函数lower_bound().upper_bound().binary_se ...
- STL函数库的应用第四弹——全排列(+浅谈骗分策略)
因为基础算法快学完了,图论又太难(我太蒻了),想慢慢学. 所以暂时不写关于算法的博客了,但又因为更新博客的需要,会多写写关于STL的博客. (毕竟STL函数库还是很香的(手动滑稽)) 请出今天主角:S ...
- dlib库学习之一
dlib库学习之一 1.介绍 跨平台 C++ 通用库 Dlib 发布 ,带来了一些新特性,包括概率 CKY 解析器,使用批量同步并行计算模型来创建应用的工具,新增两个聚合算法:中国低语 (Chines ...
- Standard C 语言标准函数库速查(彩色的函数列表,十分清楚)
Standard C 语言标准函数库速查 (Cheat Sheet) wcstombs 函数说明 #include <stdlib.h> size_t mbstowcs(wchar_t * ...
随机推荐
- Java 第十一届 蓝桥杯 省模拟赛 凯撒密码加密
凯撒密码加密 题目 问题描述 给定一个单词,请使用凯撒密码将这个单词加密. 凯撒密码是一种替换加密的技术,单词中的所有字母都在字母表上向后偏移3位后被替换成密文.即a变为d,b变为e,-,w变为z,x ...
- Java实现 LeetCode 673 最长递增子序列的个数(递推)
673. 最长递增子序列的个数 给定一个未排序的整数数组,找到最长递增子序列的个数. 示例 1: 输入: [1,3,5,4,7] 输出: 2 解释: 有两个最长递增子序列,分别是 [1, 3, 4, ...
- Java实现 LeetCode 357 计算各个位数不同的数字个数
357. 计算各个位数不同的数字个数 给定一个非负整数 n,计算各位数字都不同的数字 x 的个数,其中 0 ≤ x < 10n . 示例: 输入: 2 输出: 91 解释: 答案应为除去 11, ...
- Java实现 LeetCode 229 求众数 II(二)
229. 求众数 II 给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素. 说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1). 示例 1: 输入: [3,2, ...
- java实现排列序数
X星系的某次考古活动发现了史前智能痕迹. 这是一些用来计数的符号,经过分析它的计数规律如下: (为了表示方便,我们把这些奇怪的符号用a~q代替) abcdefghijklmnopq 表示0 abcde ...
- 阿里云高级技术专家空见: CDN的数据化之路
想要实现优质高速的互联网视频服务,一定离不开高质量的内容分发网络服务,就是我们常说的CDN,在10月13日云栖大会视频多媒体分论坛上,阿里云高级技术专家空见为大家讲解了CDN服务过程中,数据处理.安全 ...
- 除了FastJson,你也应该了解一下Jackson(一)
在上月末的时候收到一条关于fastjson安全漏洞的消息,突然想到先前好像已经有好多次这样的事件了(在fastjson上面).关于安全方面,虽然中枪的机率微小,但是在这个信息越来越复杂的时代,安全性也 ...
- ODEINT 求解常微分方程(4)
import numpy as np from scipy.integrate import odeint import matplotlib.pyplot as plt # function tha ...
- List集合排序的方法
1.list集合中的对象实现Comparable接口 public class User implements Comparable<User>{ private Integer id; ...
- 怒肝俩月,新鲜出炉史上最有趣的Java小白手册,第一版,每个 Java 初学者都应该收藏
这么说吧,在我眼里,Java 就是最流行的编程语言,没有之一(PHP 往一边站).不仅岗位多,容易找到工作,关键是薪资水平也到位,不学 Java 亏得慌,对吧? 那可能零基础学编程的小伙伴就会头疼了, ...