STL——set
来源:互联网 发布:淘宝联盟网页版怎么用 编辑:程序博客网 时间:2024/05/29 04:37
set/multiset:
set每个数都是唯一的,默认按照从小到大排序
multiset每个数可以多个存在,也是从小到大排序
set<容器适配器> name;
set:: iterator it; 声明一个适用于int类型set的迭代器,变量名it
set::reverse_iterator rit; 声明一个反向迭代器
insert( 数) 将这个数插入
insert(指针first,指针last) 将这个区间内的数插入
insert (指针,数) 将数插入指定位置
erase(数) 将这个数删除,如果是multiset则所有这个数都删掉
erase(指针) 将这个位置的数删除
erase(指针first,指针last) 将这个区间内的数删除
lower_bound / upper_bound(指针first,指针last,数) 二分查找第一个大于等于/严格大于 指定数的数,返回一个指向这个位置的指针。若找不到返回end()
bigin() 第一个
end() 尾指针,最后一个的后面一个
rbegin() 倒数第一个
rend() 倒数的尾指针,第一个的前面一个
——前缀r 的都是反向迭代器,要用reverse_iterator
酒店
Time Limit: 1000MS Memory Limit: 1000K
Description
商店有n瓶酒,每瓶酒有一个度数xi,
有Q个人来买酒,要度数为v的酒,若店里没有度数为v的酒,
店主就会拿出度数高一点的酒(度数为t且t>v)卖给客人,
但有一个要求,t需要满足t-v<=Y;每输入一个客人要的酒的度数,
就输出店主卖出酒的度数,若店主没能卖出酒,就输出-1;
Input
第一行是一个T,表示样例的个数
对于每一个样例;
第一行是三个数字, N,Q and Y.
第二行有N个数字, 表示每一瓶酒的度数.
第三行有Q个数字, 表示从早上到晚上顾客要的酒的度数.
这里所有的数字在0和1,000,000之间
Output
对于每一个样例, 输出 “Case I:”, I表示样例的序号, 下面有Q行数字,
表示店主卖出酒的度数. 如果店家卖不出这样的酒,输出-1.
Sample Input
2
2 3 3
2 3
1 2 3
2 3 0
2 3
3 1 2
Sample Output
Case 1:
2
3
-1
Case 2:
3
-1
2
#include<iostream>#include<stdio.h>#include<set>using namespace std;multiset<int>s;//声明multisetmultiset<int>::iterator it;//声明一个迭代器int main(){ int T; cin >> T; for (int I = 0; I < T; I++) { s.clear(); printf("Case %d:\n", I + 1); int n, q, y; scanf("%d%d%d", &n, &q, &y); int t; for (int i = 0; i < n; i++) { scanf("%d", &t); s.insert(t); } cout << *s.rend(); while (q--) { scanf("%d", &t); it = s.lower_bound(t); if (it == s.end()||*it-t>y)//若没有比这个数大的返回s.end() { cout << "-1" << endl; continue; } printf("%d\n", *it); s.erase(it); } }}
- STL — — set
- STL——set
- STL—set
- stl学习—set
- STL——set用法
- C++ STL——set
- STL总结——set
- STL关联容器—set
- 【STL】关联容器 — set
- STL应用——神奇的set
- STL—— set与hash_set
- STL源码剖析——set
- 【数据结构】STL——set容器
- STL——set的应用
- STL——set与hash_set
- STL — set容器的使用详解
- STL常用函数复习之————set
- STL set 用法之 —— 自定义结构体
- 基于人机交互设备测量用户情绪。
- UVA10820SendATable
- 【我很简单,请不要欺负我】模拟环境渗透详细记录
- 搭建Hadoop开发环境
- 【字符串·Trie】uva3942 Remember the words
- STL——set
- connect()函数阻塞和非阻塞问题解决
- C语言小项目-万年历
- Scala学习之三Scala_ 下划线占位符语法
- MBR 和 GPT 分区差别
- linux-关机重启命令
- 我理解的设计模式之适配器模式
- 小明左手拿着纸牌黑桃10,右手拿着纸牌红桃8, 现在交换手中的牌, 用程序模拟实现的过程, 并输出交换前后手中的纸牌的结果
- 解决ionic输入input里的内容时会把底部tabs顶上来的情况(隐藏底部tabs)