#include <iostream>
#include<vector>
#include<deque>
#include<queue>
#include<map>
#include <stack>
#include<unordered_map>
#include<set>
#include<unordered_set>
#include<forward_list>
#include<string>
using namespace std;
template <class T>
void print(T &nums) {
for (auto tmp : nums) {
cout << tmp << " ";
}
cout << "" << endl;
}
int f[5];
bool cmp(int a, int b) {
return a > b;
}
int main()
{
int ff[5];
vector<int> v1(5);
vector<int> v2(5, 1);
vector<int> vec = { 5,4,8,2,3,1 };
vec.push_back(9);
vec.pop_back();
v2.capacity();
v2.size();
v2.resize(8);
cout << "索引"<<vec[5] << endl;
cout << "at" << vec.at(5) << endl;
sort(vec.begin(), vec.end());
print(vec);
sort(vec.begin(), vec.end(),cmp);
print(vec);
v2.clear();
vector<int>::iterator it = find(vec.begin(), vec.end(),5);
if (find(vec.begin(),vec.end(),8)!=vec.end()) cout<<"vector find"<<endl;
int index = &*it - &vec[0];
cout << "index"<<index << endl;
reverse(vec.begin(),vec.end());
deque<int> dq ;
dq.push_back(3);
dq.push_back(2);
dq.push_back(7);
cout << "dq back"<<dq.back() << endl;
cout << "dq front"<<dq.front() << endl;
dq.pop_back();
dq.push_front(3);
dq.pop_front();
dq.empty();
queue<int> que ;
que.push(7);
que.push(6);
que.pop();
cout << "que" << que.front() << endl;
set<int> ts = {1,5,7,8,9,44,12,34,23,21,33,45};
if (ts.find(5) != ts.end()) cout << "find" << endl;
vector<int> vx = { 1,1,2,2,3,3,4,5,6,7 };
set<int> sset(vx.begin(), vx.end());
auto ret = sset.insert(13);
if (ret.second) cout << "insert retrun"<<*ret.first;
sset.insert(vx.begin(), vx.end());
cout << sset.size() << endl;
ts.upper_bound(9);
ts.lower_bound(9);
int cnt = ts.erase(45); cout << "cnt" << cnt << endl;
auto cntx = ts.erase(ts.find(8)); cout << "cntx" << *cntx << endl;
auto cntxy = ts.erase(ts.find(8), ts.find(33)); cout << "cntxy" << *cntxy << endl;
multiset<int> mset(vx.begin(), vx.end());
cout << mset.size() << endl;
mset.count(1);
pair<int, string> px(1,"xz");
pair<vector<int>, string> p(vx, "xz");
px.first; px.second;
map<int, string> mmap = { {1,"xx"},{2,"zz"},{3,"tt"},{4,"yy"},{5,"hh"} };
mmap[6] = "xz";
cout << mmap[6]<<endl;
cout << mmap.at(6) << endl;;
if (mmap.find(6) != mmap.end()) cout << "mapfind"<<mmap[6] << endl;
}