
STL
C++ STL使用
yc_cy1999
一只喜欢cc和想去南大的小羊
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
优先队列 priority_queue
LeetCode上的模板为:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val原创 2022-01-06 10:41:31 · 720 阅读 · 0 评论 -
剑指 Offer 05. 替换空格【STL操作+原地操作】
文章目录题目描述知识点结果实现码前思考代码实现码后反思题目描述知识点字符串string STL操作结果实现码前思考本来是想暴力求解的,但是记得C++ STL里面有现成的函数,所以还是决定用现成的函数来解题;代码实现class Solution {public: string replaceSpace(string s) { int pos = 0; int srclen = 1; int dstlen = 3; .原创 2021-01-06 19:32:07 · 182 阅读 · 0 评论 -
PAT A1071 Speech Patterns (25分)
文章目录题目描述知识点我的实现码前思考代码实现码后反思题目描述知识点哈希我的实现码前思考按照题目的定义,并不是仅仅以空格为分隔符分割单词的,其他只要不是数字或者字母的字符都可以作为分割符!!!所以我们选择一个个字符的读取,只要读到一个非字母或者数字时,就代表生成了一个单词(前提是这个单词是非空的!)代码实现#include<stdio.h>#include<map>#include<string>#include<iostream>.原创 2020-08-12 21:50:17 · 303 阅读 · 0 评论 -
【map】PAT A1054 The Dominant Color (20分)
文章目录题目描述知识点我的实现码前思考代码实现码后反思题目描述知识点STL我的实现码前思考题目中说了一定存在,那么每次判断就好了,水题!代码实现#include <iostream>#include <map>using namespace std;int main() { int m, n; scanf("%d %d", &m, &n); map<int, int> arr; int half .原创 2020-08-12 20:43:42 · 241 阅读 · 0 评论 -
⭐【哈希大模拟+输入输出技巧】PAT A1022 Digital Library (30分)
文章目录题目描述知识点我的实现码前思考代码实现码后反思题目描述1022 Digital Library (30分)知识点哈希我的实现码前思考这道题目就是暴力哈希的玩法,就是在输入和输出上要多加注意代码实现#include<stdio.h>#include<map>#include<vector>#include<string>#include<algorithm>#include<iostream>us.原创 2020-08-12 20:32:13 · 139 阅读 · 1 评论 -
PAT A1149 Dangerous Goods Packaging【稀疏图考虑边】⭐⭐⭐⭐⭐
文章目录题目描述知识点实现码前实现代码实现码后反思题目描述知识点图实现码前实现这道题我写错了,我一开始是这样写的:上面的分析确实有道理,如果一直两两点比较,那么就是组合数了,时间复杂度变成了103×103=10610^3 \times 10^3 = 10^6103×103=106。但是,如果只是遍历边的话,那么最多也只有2×1042 \times 10^42×104的时间复杂度!因此,每次都是扫描该点的所有不匹配点是否出现在了之前的数字中。代码实现#include "bits.原创 2020-05-09 18:58:39 · 170 阅读 · 0 评论 -
【unordered_set】PAT A1063 Set Similarity (25分)
文章目录题目描述知识点我的实现码前思考代码实现码后反思题目描述知识点STL中的无序集合unordered_set我的实现码前思考这里我使用的是暴力遍历两个set到一个set里面,然后比较前后值的个数的变化,得到公共的部分。需要注意的是,千万不能两层for循环遍历,那样绝对会超时!代码实现//交集除以并集再乘100% //数组下标从1开始 #include <iostream>#include <unordered_set> #include <a.原创 2020-08-12 16:09:16 · 119 阅读 · 0 评论 -
【手工哈希】PAT A1047 Student List for Course (25分)
文章目录题目描述知识点我的实现码前思考代码实现码后反思题目描述知识点手工哈希我的实现码前思考由于前面做了一道Course List for Student,所以这里做的还算顺利。只是关于如何将数字重新变成字符数组呢?我们可以想象,如果每次都是使用函数,那么很麻烦,也很耗时。因此我们使用一个id2name的数组来保存id到name的映射,这样就能节省不少空间和时间了。我们的courseList里面只要存储id就好,到时候输出name时,直接映射就可了。代码实现//使用一个数组存放数字到.原创 2020-08-12 15:39:28 · 298 阅读 · 0 评论 -
⭐⭐⭐⭐⭐【手动哈希】PAT A1039 Course List for Student (25分)
文章目录题目描述知识点我的实现码前思考代码实现码后反思题目描述知识点手动哈希我的实现码前思考前几次提交使用的是map+string,结果都超时了。后来选择了手动hash,将string转换成int,然后使用vector数组,就过题了。主要还是map的性能不太行,加上string的cin和cout开销太大了。代码实现//采用map+vetctor #include <iostream>#include <unordered_map>#include <.原创 2020-08-12 15:11:24 · 199 阅读 · 0 评论 -
【字符串函数】PAT A1077 Kuchiguse (20分)
文章目录题目描述知识点我的实现码前思考代码实现码后反思题目描述找所有字符串的共同后缀知识点STL字符串string的使用我的实现码前思考就一直比对就好代码实现#include <iostream>#include <string>using namespace std;const int maxn = 1e2+10;string ins[maxn];int n;int main(){ scanf("%d\n",&n); int len.原创 2020-08-10 16:19:49 · 134 阅读 · 0 评论 -
【字符串水题】PAT A1035 Password (20分)
文章目录题目描述知识点我的实现码前思考代码实现码后反思题目描述知识点字符串处理我的实现码前思考水题代码实现#include <iostream>#include <string>#include <algorithm>#include <vector>#include <unordered_map>using namespace std;struct node{ string account; string .原创 2020-08-09 21:38:24 · 138 阅读 · 0 评论 -
【string函数使用】PAT A1005 Spell It Right (20分)
文章目录题目描述知识点码前思考代码实现码后反思题目描述知识点string码前思考string水题代码实现#include <iostream>#include <algorithm>#include <string>#include <map>using namespace std;int main(){ int sum=0; string input; map<int,string> mp={{0,"ze.原创 2020-08-09 21:16:33 · 135 阅读 · 0 评论 -
【string函数使用】PAT A1001 A+B Format (20分)
文章目录题目描述实现码前思考代码实现码后反思题目描述实现码前思考需要使用STL里的string,然后需要将数字转换成字符串,需要用to_string(),这次终于没忘记了,插入逗号要用insert(),还有获取子串substr();代码实现#include <iostream>#include <string>using namespace std;int a,b,c;int main(){ scanf("%d %d",&a,&b);.原创 2020-08-09 21:00:38 · 117 阅读 · 0 评论 -
⭐⭐⭐⭐⭐PAT A1060 Are They Equal【变态测试数据】
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述知识点STL string的用法实现码前思考对于这种格式转换的题目,最常用的方法就是写很多个 if-else 语句,也就是 分情况,将问题模块化,从宏观的角度上看,这样才不会在一开始分析的时候就陷入代码细节;对于这道题,首先可以将数字分为等于0,大于0小于1,大于等于1三种情况,针对这三种情况分别进行判断即可;对于每种情况,我们都要获取两个东西:前n个有效位;指数。理清上面的思路就很好解题了,主要是代码比较繁琐;.原创 2020-06-02 18:04:21 · 215 阅读 · 0 评论 -
PAT A1050 String Subtraction
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述知识点STL集合实现码前思考记得使用unordered_set,这样查找的时间复杂度会低一些;注意使用getline(),因为有空格;代码实现#include <cstdio>#include <string>#include <unordered_set>#include <iostream>using namespace std;unordered_set&l.原创 2020-06-01 22:12:41 · 274 阅读 · 0 评论 -
PAT A1017 Queueing at Bank
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述知识点STL之priority_queue实现码前思考时间最好用秒数s来记录需要记录到来时间,开始服务时间和结束服务时间;记得考虑一个用户运气好,来的时候不用等;记得按来的时间排序;代码实现//每个window一个人,单人占用部分超过60min//没有同时到达的客户,就是说大家是有先后次序的!队列//超过17:00之后来,不当做人看,之前都当作人看,直接忽略#include <cstdio>#inc.原创 2020-06-01 21:57:17 · 130 阅读 · 0 评论 -
⭐【优先队列】PAT A1014 Waiting in Line
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述知识点STL优先队列实现码前思考之前2,4,5测试用例一直没有过,是因为自己没有看懂题目中说的,17:00点及17:00以后是不会被服务的,而17:00之前就开始服务的,会一直被服务到完成为止!(但是好奇怪,题目明明说了小时最大为17啊,万一人家要服务到20呢。。。)其他就还好,定义优先队列,采用双重的优先级,先判断早点结束,再判断窗口序号代码实现//使用优先队列进行实现//注意K是从1开始的//我们的窗口从0开始编号.原创 2020-05-31 20:03:44 · 373 阅读 · 0 评论 -
PAT A1084 Broken Keyboard
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述题目大意:旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键~知识点STL使用实现码前思考我使用的是三次遍历来得到最终的结果;需要注意toupper()函数的使用,如果不是字母,它会保持原样的字符的~这里我用到了set;注意要使用大写字母判断呀~代码实现//toupper使用 #include <cstdio>#i.原创 2020-05-25 22:25:35 · 142 阅读 · 0 评论 -
PAT A1092 To Buy or Not to Buy
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述给定两个集合,求两者的“差集”知识点C++ STL map的使用实现码前思考可以设置两个变量来记录所要输出的数据;代码实现#include <cstdio>#include <iostream>#include <map>using namespace std;map<char,int> needMap;string need;string supply;in.原创 2020-05-24 18:44:12 · 122 阅读 · 0 评论 -
⭐⭐⭐⭐⭐PAT A1095 Cars on Campus
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述1095 Cars on Campus (30分)知识点排序+大模拟实现码前思考这道题目我不会。。。虽然只是模拟题,但我依然不太会写,我抄柳神代码的。需要将时间统一化成秒;柳神的思路如下:代码实现#include <iostream>#include <vector>#include <algorithm>#include <cstring>#include &l.原创 2020-05-18 23:45:44 · 163 阅读 · 0 评论 -
C++STL之pair
文章目录0. 简介1. 定义2. 元素的访问3. pair常用函数实例解析3.1 比较操作数4. pair的常见用途5. 题型训练像使用结构体一样去使用就好啦0. 简介1. 定义2. 元素的访问3. pair常用函数实例解析3.1 比较操作数4. pair的常见用途5. 题型训练PAT A1153 Decode Registration Card of PAT...原创 2020-05-10 18:59:20 · 444 阅读 · 0 评论 -
PAT A1153 Decode Registration Card of PAT
文章目录题目描述知识点实现码前思考码后反思题目描述1153 Decode Registration Card of PAT (25分)知识点STL的使用,排序实现码前思考大型模拟题针对每一种情况,我都使用了一个容器存储结果,这样查询的时候就可以直接查询了。//究极模拟题//注意判空 #include "bits/stdc++.h"using namespace std;int n;int m;struct node{ string id; int score;.原创 2020-05-10 18:58:24 · 279 阅读 · 0 评论 -
PAT A1144 The Missing Number
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述知识点STL使用,思维实现码前思考感觉不能用sort(),会超时吧;使用set进行记录出现即可代码实现#include "bits/stdc++.h"using namespace std;unordered_set<int> st;int n;int main(){ scanf("%d...原创 2020-05-08 17:16:46 · 234 阅读 · 0 评论 -
PAT A1137 Final Grading
文章目录题目描述知识点实现码前思考码后反思码后反思题目描述知识点排序实现码前思考简单模拟题码后反思#include "bits/stdc++.h"using namespace std;const double v = 0.4;struct stu{ string id; int pa; int gm; int gf; int g; stu(){};...原创 2020-05-05 20:53:26 · 314 阅读 · 0 评论 -
⭐【高精度加法】PAT A1136 A Delayed Palindrome
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述知识点STL使用实现码前思考这道题目给我的第一感觉就是使用高精度整数运算,但是我想错了!后面看看柳神的代码代码实现//高精度整数运算#include "bits/stdc++.h"using namespace std;const int maxn = 1e3+10;struct bign{ int ...原创 2020-05-05 20:35:41 · 196 阅读 · 0 评论 -
PAT A1134 Vertex Cover【对边进行哈希】⭐⭐⭐⭐⭐
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述知识点图、STL实现码前思考由于之前看了柳神的某一题的题解,想到了使用u*10000+v对边进行标记,但是我还是道行不够深。。。代码实现#include "bits/stdc++.h"using namespace std;const int maxn = 1e4+10; const int multi = ...原创 2020-05-04 19:16:46 · 205 阅读 · 0 评论 -
C++STL之string⭐⭐⭐⭐⭐
文章目录0. 简介1. string的定义2. string中内容的访问——查2.1 通过下标访问2.2 通过迭代器访问3. string常用函数实例解析3.1 operator+=3.2 compare operator3.3 length()/size()3.4 insert()3.5 erase()3.5.1 删除单个元素3.5.2 删除一个区间内的所有元素3.6 clear()3.7 s...原创 2020-05-04 19:04:38 · 174 阅读 · 0 评论 -
PAT A1132 Cut Integer
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述知识点C++库函数使用,STL实现码前思考可以使用stoi和substr()快速实现功能代码实现#include "bits/stdc++.h" using namespace std;int n;int main(){ scanf("%d",&n); for(int i=0;i<n;i...原创 2020-05-04 18:42:07 · 101 阅读 · 0 评论 -
PAT A1128 N Queens Puzzle
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述知识点STL实现码前思考本来是一道水题,但是我想了好久,真是菜的真实!就是在斜率为-1,1,0的情况下,不能出翔相同的纵截距。代码实现#include "bits/stdc++.h"using namespace std;int k;int n;string str;int main(){ s...原创 2020-05-03 22:09:29 · 141 阅读 · 0 评论 -
【topN+模拟最小堆的思路】⭐PAT A1129 Recommendation System
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述知识点排序、STL实现码前思考我在一开始使用了最愚蠢的方法,那就是每次都使用sort进行一次新的排序,果然是运行超时了;后来看别人的题解,发现原来这个其实就是一个TopN问题,自己明明之前在堆里面做过很多关于TopN,而这次还是没有记起该怎么做,我好菜。所以,使用TopN的思想,每次维系前N个数就好了。代码实现/...原创 2020-05-03 22:00:53 · 374 阅读 · 0 评论 -
PAT A1124 Raffle for Weibo Followers
文章目录题目描述知识点实现题目描述知识点STL实现#include "bits/stdc++.h"using namespace std;const int maxm = 1010;int m;int n;int s;string names[maxm];set<string> st;int main(){ scanf("%d %d %d",&a...原创 2020-05-02 16:20:15 · 154 阅读 · 0 评论 -
C++STL之queue
文章目录0.简介1. queue的定义2. queue容器内元素的访问3. queue常用函数实例解析3.1 push()3.2 front()和back()3.3 pop()3.4 empty()3.5 size()4. 注意点0.简介queue翻译为队列,在STL中主要实现了一个先进先出的容器。1. queue的定义2. queue容器内元素的访问3. queue常用函数实例...原创 2020-05-01 19:59:46 · 167 阅读 · 0 评论 -
PAT A1120 Friend Numbers
文章目录题目描述知识点实现代码实现题目描述知识点STL使用实现代码实现#include "bits/stdc++.h"using namespace std;const int maxn = 10;int n;set<int> st;void countSum(char str[]){ int len = strlen(str); int sum ...原创 2020-05-01 19:50:14 · 96 阅读 · 0 评论 -
【set的使用】PAT A1121 Damn Single
文章目录题目描述知识点实现代码实现题目描述知识点STL使用实现代码实现#include "bits/stdc++.h"using namespace std;int n;int m;map<int,int> cp;set<int> in;set<int> single;int main(){ scanf("%d",&...原创 2020-05-01 19:48:34 · 123 阅读 · 0 评论 -
C++STL之set
文章目录0. 简介1. set的定义2. set容器内元素的访问3. set常用函数实例解析——增删改查3.1 insert()——增3.2 find()——查3.3 erase()——删3.3.1 删除单个元素3.3.2 删除一个区间内的所有元素3.4 size()3.5 clear()4. 补充——unordered_set0. 简介1. set的定义2. set容器内元素的访...原创 2020-04-30 19:22:03 · 570 阅读 · 0 评论 -
PAT A1112 Stucked Keyboard【好模拟】⭐⭐⭐⭐⭐
文章目录题目描述知识点实现码前思考代码实现码后反思题目描述知识点STL的使用,map的使用实现码前思考我原来想着是读取当前字符,然后再遍历其后面k个,后来想想这时间复杂度会很高,所以我想到怎么变成O(N)O(N)O(N),于是我就想到了pre这个变量来存储上一个字符,cnt变量来存储上一个字符匹配的长度。妙呀;由于使用了pre,我们应该注意到对于第一个字符,它没有pre。这个...原创 2020-04-29 23:02:08 · 153 阅读 · 0 评论 -
C++STL之map
文章目录0. 简介1. map的定义2. map容器内元素的访问——掌握增删改查2.1 通过下标访问2.2 通过迭代器访问3. map常用函数实例解析3.0 begin(),rbegin(),end()3.1 find()——查3.2 erase()——删3.2.1 删除单个元素3.2.2 删除一个区间内的所有元素3.3 size()3.4 clear()——删3.5 count()——查4. ...原创 2020-04-29 22:13:01 · 740 阅读 · 1 评论