STL
Goodbye_yesterday
湖北大学计科18级
展开
-
map的妙用 UVA156
题目大意:输入一些单词,找出所有满足如下条件的单词:该单词不能通过字母重排,得到输入文本的另外一个单词。在判断是否满足条件时,字母不分大小写,但在输出时应保留输入的大小写,按字典序排列。分析思路:将所有单词标准化,用map来统计。#include<bits/stdc++.h>using namespace std;string s;string repr(str...原创 2018-12-26 16:02:58 · 184 阅读 · 0 评论 -
vector的用法
vector是可增加长度的动态数组vector的成员函数size() o(1)push_back(x) o(1)pop_back o(1)begin() o(1)end() o(1)insert(p,x) o...原创 2018-12-24 08:56:48 · 216 阅读 · 0 评论 -
list的用法总结
list为STL中的双向链表list的成员函数size() O(1)begin() O(1)end() O(1)push_front(x) O(1)push_back(x) O(1)pop_front() ...原创 2018-12-24 09:31:37 · 842 阅读 · 0 评论 -
矩阵链乘 UVA442
题目并不复杂,代码相对也比较好写,只是想记录解析表达式的方法,用栈来处理解析式,遇到字母时入栈,遇到右括号时出栈计算,并将结果压回栈中。#include<bits/stdc++.h>using namespace std;struct Matrix{ int a,b; Matrix(int a=0,int b=0):a(a),b(b) { }}m[26];stack...原创 2018-12-30 16:08:58 · 163 阅读 · 0 评论 -
UVA210
这道题其实并不简单,因为我最开始没有写出来。。。。。。。但看完题解之后感觉这道题似乎没什么难度,额,好像每次都是这样。。。。。题目中有两个队列,等待队列,阻止队列,等待队列可以直接用队列写,而阻止队列只能用deque来写,因为要将元素插入队列的首部。后面的按照题目一步一步的写就好了#include<bits/stdc++.h>using namespace std;#...原创 2018-12-30 16:13:56 · 352 阅读 · 0 评论 -
UVA11988
这道题并不困难,重要的是用cur的值来表示光标位置的这种思想。无论是HOME键还是END键实质都是光标位置的变化,用数组来表示链表也是本题应该学习的。#include<bits/stdc++.h>using namespace std;int n,Next[100005],cur,last;char s[100005];int main(){ while(scanf(...原创 2019-01-06 13:24:38 · 289 阅读 · 0 评论 -
UVA12657
这道题是对双向链表的模拟,个人认为程序的点睛之笔当属flag的使用,而我最开始没有想到这么做,每次遇到4操作就要把链表反过来一次,编程复杂度和时间复杂度都高,记录flag的奇偶性,从而对2,3两个操作进行变化,思维确实十分巧妙。虽然题目不难,但其中思维方法个人认为确实极值得学习的。#include<bits/stdc++.h>using namespace std;int r...原创 2019-01-08 16:16:07 · 566 阅读 · 0 评论 -
set的用法总结
set<int> s;插入元素s.insert(x);迭代器循环for(set<int>::iterator it=s.begin();it!=s.end();it++)cout<<*it<<" ";使用size函数获取集合中的元素个数s.size()使用find函数查找元素是否存在s.find(x)!=s.end...原创 2018-12-21 11:33:52 · 579 阅读 · 0 评论 -
map的用法
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据 处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一 种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识...原创 2019-02-20 16:32:49 · 737 阅读 · 0 评论