标签:map
1.在使用mp[key]的时候它会去找键值为key的项,如果没有,他会自动添加一个key的项,再把value赋值为相应的初始值(value是int的话赋值为0,string的话赋值为空)。所以如果是插入的话可以用insert,如果是查找的话可以使用find,这样可以节省开销。查找的时间复杂度为O(logn)
2.
代码:
#include<iostream>
#include<string>
#include<map>
using namespace std;
string word[50005];
map<string,int> mp;//用平衡二叉树实现的,按key从小到大排
int main()
{
int i=0;
//printf("%d\n",k.max_size());用来看容器的容量
while(cin>>word[i++])//用ctrl+z然后enter结束循环
{
mp[word[i-1]]=1;//mp[]中的[]已重载,注意是i-1啊啊!!!!!!
}
map<string,int>::iterator it;
for(it=mp.begin(); it!=mp.end(); it++)
{
string w=it->first;
for(i=1; i<w.length()-1; i++)
{
string w1(w,0,i);//复制[0,i)
string w2(w,i);//从w的i位置开始复制
if(mp.find(w1)!=mp.end()&&mp.find(w2)!=mp.end())
{
cout<<w<<endl;
break;
}
}
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
hdu 1247 Hat’s Words(从给的单词中找hat's word 并按字典序输出)
标签:map
原文地址:http://blog.csdn.net/xky1306102chenhong/article/details/47066037