标签:返回 deque 队列 元素 用法 ans 双向 front
双向队列用法:
双向队列就是可以在队首,队尾出进的队列。
Constructors | 创建一个新双向队列 |
Operators | 比较和赋值双向队列 |
assign() | 设置双向队列的值 |
at() | 返回指定的元素 |
front() | 返回第一个元素 |
back() | 返回最后一个元素 |
erase() | 删除一个元素 |
clear() | 删除所有元素 |
empty() | 返回真如果双向队列为空 |
begin() | 返回指向第一个元素的迭代器 |
end() | 返回指向尾部的迭代器 |
rbegin() | 返回指向尾部的逆向迭代器 |
rend() | 返回指向头部的逆向迭代器 |
push_front() | 在头部加入一个元素 |
push_back() | 在尾部加入一个元素 |
pop_front() | 删除头部的元素 |
pop_back() | 删除尾部的元素 |
insert() | 插入一个元素到双向队列中 |
size() | 返回双向队列中元素的个数 |
max_size() | 返回双向队列能容纳的最大元素个数 |
resize() | 改变双向队列的大小 |
swap() | 和另一个双向队列交换元素 |
get_allocator() | 返回双向队列的配置器 |
题目来自蓝桥杯模拟赛,可用双向队列模拟。
#include<iostream> #include<queue> #include<deque> using namespace std; int main() { int T, N, a, b, c, ans = 1; cin >> T; while (T--) { ans = 1; cin >> N; int n = N; cin >> a; n--; deque<int> r; r.push_front(a); while (n+1) { if (r.size() != 0) { b = r.front(); c = r.back(); if (b == ans) { r.pop_front(); ans++; continue; } else if (c == ans) { r.pop_back(); ans++; continue; } } if (n > 0) { cin >> a; r.push_front(a); } n--; } if (r.size() == 0) cout << "YES" << endl; else cout << "NO" << endl; } return 0; }
标签:返回,deque,队列,元素,用法,ans,双向,front 来源: https://www.cnblogs.com/20km-shimakaze/p/14669332.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。