Vector容器
Vector容器使用-示范代码:
#include<bits/stdc++.h>
using namespace std;
vector<string> city;//定义一个int类型的vector容器city
vector<string> dig[1000];//定义一个int类型的vector容器dig组
int Myfind(string s){
for(int i=0;i<city.size();i++){ //当成数组用 -迭代
if(city[i]==s)
return i;//返回id
}
return -1;
}
int main(){
int n;
cin>>n;//输入个数
for(int i=0;i<n;i++){
string d,c;
cin>>d>>c;//id 和 城市名称
int flag=Myfind(c);
if(flag==-1){ //找不到,未放入过名称
city.push_back(c);//名称压进vector city(和list相似但不是)
dig[city.size()-1].push_back(d);//id压进vector dig组
//city.size()-1,vector元素个数
//同一个城市多个id,所以id放入的vector dig组
}
else dig[flag].push_back(d);//找得到,放入过名称,此时再放入id即可
}
for(int i=0;i<city.size();i++){ //当成数组用 -迭代
cout<<city[i]<<" "<<dig[i].size()<<endl;
for(int j=0;j<dig[i].size();j++)
cout<<dig[i][j]<<endl;
}
}
//测试用例
//5
//11 gz
//22 gx
//33 hn
//44 gz
//33 hn
队列Queue
CLZ银行-队列例题:
#include<bits/stdc++.h>
using namespace std;
queue<string> V; //定义队列V、N
queue<string> N;
int main(){
int M;
cin>>M;
while(M--){
string op,name,type;//入或者出,名字,权限类型
cin>>op;
if(op=="IN"){
cin>>name>>type;
if(type=="V")
V.push(name);
else
N.push(name);
}
else{
cin>>type;
if(type=="V")
V.pop();
else
N.pop();
}
}
while(V.size()){ //遍历就是输出第一个然后pop扔掉,然后再下个第一个
cout<<V.front()<<endl;
V.pop();
}
while(N.size()){
cout<<N.front()<<endl;
N.pop();
}
return 0;
}
Map映射
弗里的语言-Map映射例题:
#include<bits/stdc++.h>
using namespace std;
map<string,bool> mp;
int main(){
int n;
string ans="No";
cin>>n;
for(int i=0;i<n;i++){
string word;
cin>>word;
if(mp.count(word)){
//map不包含重复的key,mp.count(key)取值为0或者1,表示是否包含
ans=word;
break;
}
else mp[word]=1;
}
cout<<ans<<endl;
return 0;
}
Set使用
set使用-示范代码:
#include<bits/stdc++.h>
using namespace std;
int n;//共计N个数
int m;//选m个数
//1.set的定义 set<数据类型> 变量名
set<int> intSet;
set<string> stringSet;
int main(){
string s1="测试1";
string s2="测试2";
string s3="测试3";
//2.插入操作
stringSet.insert(s3);
stringSet.insert(s1);
//5.返回集合元素数量
printf("q前2次插入操作完成后的元素数量为%d\n",stringSet.size());
stringSet.insert(s2);
printf("q前3次插入操作完成后的元素数量为%d\n",stringSet.size());
//6.遍历整个集合,借助迭代器实现
//定义方式 容器类型<type> ::iterator name
set<string> ::iterator setStringIterator;
for(setStringIterator=stringSet.begin();setStringIterator!=stringSet.end();setStringIterator++)
cout<<*setStringIterator<<" ";
puts("");
//4.判断是否由此元素
if(stringSet.count(s2)!=0)
cout<<"存在元素"<<s2<<endl;
return 0;
}