//动态数组 vector
/*
assign();对vector 进行赋值
at();返回指定位置的元素
back() 返回最末元素
begin() 返回第一个元素的迭代器
capacity() 返回vector 所能容纳的元素数量
clear() 清空所有元素
empty() 判断vector是否为空
end() 返回最末元素的迭代器
erase() 删除指定元素
front() 返回第一个元素
insert() 插入元素到 vector
pop_back() 移除最后一个元素
push_back() 在vector 最后添加元素
size() 返回vector中元素的数量
swap() 交换两个元素
priority_queue<int, vector<int>, greater<int> > p //从小到大排列
priority_queue<int,vector<int>,less<int> >p;// 从大到小排列
#include<cstdio>
#include<algorithm>
#include<iostream>
#include<vector>
using namespace std;
vector<int>p;
int main()
{
int n,x;
p.clear(); //清空p
cin>>n;
for(int i=0; i<n; i++)
{
cin>>x;
p.push_back(x); //输入元素
}
for(int i=0; i<n; i++)
cout<<p[i]<<" ";
cout<<endl;
cout <<"***********************11"<<endl;
vector<int>::iterator it; //定义迭代器,it;
for(it=p.begin(); it!=p.end(); it++)
cout<<(*it)<<endl; //注意是*it
cout<<"************************22"<<endl;
it=p.begin();
p.erase(it); //删除元素
cout<<(*it)<<endl; //自动移到了下一个
cout<<p.size()<<endl;
cout<<"**********************************33"<<endl;
it=p.begin();
p.erase(it,it+3); //删除从it到it+3
cout<<(*it)<<endl;
cout<<p.size()<<endl;
cout<<"********************************44"<<endl;
return 0;
}*/
//队列(优先队列)
/*back() 返回最后一个元素
empty() 如果是空就返回真
front() 返回第一个元素
pop() 删除第一个元素
push() 在末尾加入一个元素
size() 返回队列中元素的个数*/
/*#include<cstdio>
#include<algorithm>
#include<iostream>
#include<queue>
using namespace std;
int main()
{
queue<int >p;
int n,x;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>x;
p.push(x);
}
while(!p.empty())
{
int u=p.front();
cout<<u<<" ";
p.pop();
}
cout<<endl;
}*/
//优先队列
/*#include<cstdio>
#include<algorithm>
#include<iostream>
#include<queue>
#include<utility>
using namespace std;
struct node
{
int x,y;
bool operator <(const node &temp)const
{
return x>temp.x;
}
};
int main()
{
int n;
node temp;
priority_queue<int,vector<int>,node> q;
while(!p.empty())
p.pop();
cin>>n;
for(int i=0;i<n;i++)
{
cin>>temp.x>>temp.y;
p.push(temp);
}
cout<<endl;
while(!p.empty())
{
temp=p.top();
cout<<temp.x<<" "<<temp.y<<endl;
p.pop();
}
return 0;
}
*/
//set
/*#include<cstdio>
#include<algorithm>
#include<iostream>
#include<set>
using namespace std;
set<int> st;
int main()
{
int n,x;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>x;
st.insert(x);
}
set<int>::iterator it;
for(it=st.begin();it!=st.end();it++)
cout<<(*it)<<endl;
if(st.find(3)!=st.end())
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
return 0;
}*/
//建立映射 map
/*#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string.h>
#include<map>
#include<utility>
using namespace std;
map<int,string>f;
int main()
{
int n,ct=0,x;
string str;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>x>>str;
f[x]=str;
}
cout<<"********"<<endl;
for(int i=0;i<n;i++)
{
cout<<f[i]<<endl;
}
cout<<"******"<<endl;
f.insert(pair<int,string>(2,"absdgfsdfcui"));//前面的是坐标后面的是内容
for(int i=0;i<=n;i++)
{
cout<<f[i]<<endl;
}
return 0;
}*/
/*案例
2
0 asd
1 sdf*/
//栈的实现
/*#include<cstdio>
#include<algorithm>
#include<iostream>
#include<stack>
using namespace std;
stack<int>st;
int main()
{
int n,x;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>x;
st.push(x);
}
cout<<endl;
while(!st.empty())
{
x=st.top(); //注意栈是top
cout<<x<<endl;
st.pop();
}
return 0;
}
*/
//整数转化2进制
/*#include<cstdio>
#include<iostream>
#include<algorithm>
#include<bitset>
using namespace std;
int main()
{
int x;
cin>>x;
bitset <16>bit(x); //bitset<长度>变量名(转化量)
cout<<bit<<endl;
return 0;
}
*/
stl 初步了解
最新推荐文章于 2025-03-16 20:58:31 发布