#include
using namespace std;
typedef long long ll;
int main() {
//ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
int x;
vector v; // v({1,2,3})
// v{1,2,3}
// v[i] 随机访问
v.begin(); // 迭代器
v.end(); // 迭代器
// 迭代器不能直接输出
v.front(); // 返回第一个元素 == *v.begin()
v.back(); // 返回最后一个元素 == *v.end()
v.size();
v.push_back(x); // 插到尾部
v.pop_back(); // 删除最后一个
v.clear();
queue q;
priority_queue pq; // 从大到小排序(大根堆)
priority_queue, greater> pq1;// 小根堆
q.push(x); // 从队尾插入
q.pop(); // 从队头弹出
q.front(); // 返回队头元素
q.back(); // 返回队尾元素
q.empty();
q.size();
// bool operator> (const Rec& t) const
// {
// return a > t.a;
// } 放在结构体里
pq.push(x); // 把元素插入堆
pq.pop(); // 删除最大元素
pq.top(); // 查询堆顶元素
// 优先队列,队列,栈没有clear (重新定义)
stack stk;
stk.push(1);
stk.top();
stk.pop();
deque dp;
// dp[i] 可以这样
dp.push_back(x); // 从队尾插入
dp.push_front(x); //
dp.back(); //
dp.begin(); //
dp.end(); //
dp.pop_back();
dp.pop_front();
dp.clear();
set s; // 有序不重复
multiset ms; // 有序重复
s.begin();
//end()
s.insert(x);// 插入
s.find(x); //查找并返回指向该元素的迭代器
s.lower_bound(x); // 查找大于等于x的最小的一个
s.upper_bound(x); // 查找大于x的最小的一个
s.erase(x); // 删除
s.count(x);
map mp;
mp.insert(x,x); //
mp.find(x); // 不可输出
//mp[?] = ?; ?里输东西
// unordered 无序
bitset<1000> bs; // <>里面写长度
pair pa; //
pa = make_pair(3, 3);
cout << pa.first << pa.second ;
reverse(v.begin(), v.end()); // 倒序
int m = unique(v.begin() , v.end()) - v.begin();
for (int i = 0; i < m; i++) {
cout << v[i] << " ";
}// 去重
return 0;
}