set_map容器
#include<bits/stdc++.h>
using namespace std;
const int N=1e+10;
set<int> s; //集合 去重
multiset<int> s1; //集合 不去重
map<int ,int> mp;//映射
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
mp[x]=i;
s.insert(x);
}
/*s.fing(1) //查找
s.clear(); //清空
s.size(); //计数
s.empty(); //判空
s.erase(2); //删除 */
for(auto v:s) {cout<<v<<endl;}
for(auto v:mp) cout<<v.first<<" "<<v.second<<endl;
/*//set遍历 迭代变量声明
set<int>::iterator it;
for(it=s.begin();it!=s.end();it++)
cout<<*it<<endl;
//遍历map函数
map<int,int>::iterator it1;
for(it1=mp.begin();it1!=mp.end();it1++)
cout<<it1->first<<" "<<it1->second<<endl;*/
return 0;
}
string 容器
#include<bits/stdc++.h>
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s1(5,'s'); // 5个s
cout<<s1<<endl;
cout<<"A.字符串的输入输出"<<endl;
string s2;
cin>>s2;//输入字符串
cout<<s2<<endl;//输出字符串
cout<<"B.访问字符串s2中的字符"<<endl;
for(int i=0;i<s2.size();i++) //s2.size字符串的长度
{
cout<<s2[i]<<' ';
}
cout<<endl;
s2[5]='*';
cout<<s2<<endl;
cout<<"C.字符串拼接"<<endl;
string s3=s2+s1; // 字符串连接
cout<<s3<<endl;
cout<<"D.字符串的增删改查"<<endl;
cout<<"1.插入"<<endl;
string s11="1234567890";
string s22="aaa";
s11.insert(5,s22); //插入s11.inster(pos,s2)
cout<<s11<<endl;
cout<<"2.删除"<<endl;
s11.erase(6,3); //删除:s11.erase(pos,num)
cout<<s11<<endl;
cout<<"3.提取子字符串"<<endl;
string ss1 = "first second third";
cout<<ss1<<endl;
string ss2;
ss2=ss1.substr(6,6); //截取:subster(pos,num)
cout<<ss2<<endl;
cout<<"4.查找"<<endl;
int index=ss1.find(ss2,5); //查找:find(s2,pos)
cout<<index<<endl;
int index1 = ss1.find_first_of(ss2);
cout<<index1<<endl;
//string s=to_string(123456) //转化为字符串
return 0;
}
vector 容器
#include<bits/stdc++.h>
using namespace std;
const int N=1e+10;
vector<int> ve ; // ve[10];2维数组
int cmp(int a,int b)//降序
{
return a>b;
}
int main()
{
int n;
cin>>n;
//ve.clear 清空数组
for(int i=1;i<=n;i++)
{
int x;
cin>>x;
ve.push_back(x); //入数组
}
//ve.pop_back() 去掉最后一个数
sort(ve.begin(),ve.end(),cmp);//排序
for(int i=0;i<ve.size();i++)
{
printf("%d ",ve[i]);
}
return 0;
}
栈 容器
#include<bits/stdc++.h>
using namespace std;
/*stack <int> st;
int main()
{
st.empty(); //判断栈是否为空
st.push(int); //入栈
st.pop(); //出栈
st.top(); //栈顶元素
st.size(); //栈包含的元素
return 0;
} */
//栈的例题:括号匹配,左括号入栈,遇到右括号出栈
stack <char> st;
string s;
bool empty(){
for( char c:s)
{
if(c=='(') st.push(c);
else if(c==')'){
if(st.empty()) return false;
st.pop();
}
}
if(st.empty()) return true;
return false;
}
int main()
{
cin>>s;
if( empty()) cout<<"YES"<<endl; //匹配成功
else cout<<"NO"<<endl; //匹配失败
return 0;
}
队列容器
//先进先出
#include<bits/stdc++.h>
using namespace std;
queue <int> q;
//队列的遍打印
void print(){
while(!q.empty()){
printf("%d ",q.front());
q.pop();
}
}
int main()
{
q.empty(); //判断队列是否为空
q.push(1); //入队 (队尾)
q.pop(); //出队(队头)
q.front(); //找到队头元素
q.size(); //队包含的元素
print();
return 0;
}