一、Vector
1. Vector 简介和使用方法
2.
二、Set
三、Map
3.1
3.2
3.3
四、练习题
4.1 set应用
#include<iostream>
#include<set>
using namespace std;
struct people
{
int h;
int w;
int age;
people(int _h,int _w,int _age)
{
h=_h;
w=_w;
age=_age;
}
bool operator<(const people &rhs) const{
if(h !=rhs.h){
return h<rhs.h;
}
if( w!=rhs.w){
return w<rhs.w;
}
return age<rhs.age;
}
};
set<people> s;
int main()
{
int n,m,h,w,age;
cin>>n>>m;
for(int i=0;i<n;i++)
{
cin>>h>>w>>age;
s.insert(people(h,w,age));
}
for(int i=0;i< m;i++)
{
cin>>h>>w>>age;
if(s.count(people(h,w,age))){
cout<<"yes"<<endl;
}else{
cout<<"no"<<endl;
}
}
return 0;
}
4.2
#include<iostream>
#include<vector>
using namespace std;
vector<int> v[10005];
int main()
{
int n,m,a,b;
cin>>n>>m;
for(int i=0;i<=n;i++) //初始化
{
v[i].push_back(i);
}
for(int i=0;i<m;i++)
{
cin>>a>>b;
if(a == b )
{
continue;
}
for(int j=0;j<v[b].size();j++)
{
v[a].push_back(v[b][j]);
}
vector<int>().swap(v[b]);
}
for(int i=1;i<=n;i++){
for(int j=0;j<v[i].size();j++){
if(j!=v[i].size()-1){
cout<<v[i][j]<<" ";
}else{
cout<<v[i][j];
}
}
}
}
#include<iostream>
#include<set>
#include<string>
using namespace std;
set<string>s;
string ss;
bool judge[10005]={false};
int main()
{
int n,op,sum=0;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>op>>ss;
for(int j=0;j<ss.size();j++)
{
if(ss[j]>='A'&&ss[j]<='Z'){
ss[j]='a'+(ss[j]-'A');
}
}
if(op==0)
{
s.insert(ss);
}else{
sum++;
if(s.count(ss)){
judge[i]=true;
}
}
}
for(int i=0;i<sum;i++){
if(judge[i]){
cout<<"yes"<<endl;
}
else{
cout<<"no"<<endl;
}
}
}
#include<iostream>
#include<map>
#include<string>
using namespace std;
map<string,map<string,int> > mp;
string pro,fru;
int num;
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin >> fru>>pro>> num;
mp[pro][fru] += num;
}
for(map<string,map<string,int> >::iterator it1 = mp.begin();it1!=mp.end();it1++)
{
cout<< (it1 -> first)<<endl;
for(map<string,int>::iterator it2 = (it1 -> second).begin();it2!=(it1 -> second).end();it2++)
{
cout<<" |----"<< (it2 -> first )<<"("<<(it2 -> second)<<")"<<endl;
}
}
}