天梯赛
1、整数转字符,大写转小写
2、数组模拟链表
单链表——邻接表
双链表——优化问题
3、map
基本操作:
合并加排序操作
#include<iostream>
#include<map>
using namespace std;
struct node
{
string s;
int n;
}nodes[100];
int main()
{
int n;
cin>>n;
getchar();
//输入结构体
for(int i=0;i<n;i++) cin>>nodes[i].s>>nodes[i].n;
//输出测试
// for(int i=0;i<n;i++) cout<<nodes[i].s<<nodes[i].n<<endl;
map<string,int>sp;//定义map
//把结构体中的东西排序,按照s关键字的值进行合并,合并后自动排序!!!
for(int i=0;i<n;i++)
{
sp[nodes[i].s]=sp[nodes[i].s]+nodes[i].n;//多多理解这段计算式
}
//迭代器输出,first是关键字,second是值
for (auto iter = sp.begin(); iter != sp.end(); iter++)
{
cout << iter->first << " " << iter->second << endl;
}
return 0;
}
输出结果
插入操作
map<string,int>m;//定义m
1:使用insert添加元素
m.insert(pair<string,int>("sd",19));
2:直接使用数组下标
m["sd"]=19;
两种插入方式:
4、set
基本操作
插入并去重
#include<iostream>
#include<set>
using namespace std;
int main()
{
int n,x;
set<int>st;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>x;
st.insert(x);
}
for(auto it=st.begin();it!=st.end();it++)
{
cout<<*it<<endl;
}
return 0;
}
5、并查集