1.普通的map下标
简单可用到的场景(leecode中的一道题):实现一个算法,确定一个字符串 s
的所有字符是否全都不同。
可以直接用map实现
头文件中定义个map,
typedef map<char, int> MapC;
int main()
{
char arrayTest[10] = "abcdc";
MapC mapTemp;
bool bFlag = false;
for(int i = 0; i < strlen(arrayTest); i++)
{
mapTemp[arrayTest[i]]++;
if (mapTemp[arrayTest[i]] > 1)
{
bFlag = true;
break;
}
}
if (bFlag == true) cout<<"true"<<endl;
else cout<<"false"<<endl;
return 0;
}
最后可以把中间循环部分作为一个函数提取出来。
2.map下标和插入对比
头文件中定义个map
typedef map<string, int> MapC;
最开始进行对map中key为123字符串的通过insert的方式赋值为5,后面通过下标的方式赋值为5
void Print(MapC &tmp)
{
MapC::iterator it = tmp.begin();
for(; it != tmp.end(); it++)
{
cout<<"key:"<<it->first<<" value:"<<it->second<<endl;
}
return;
}
int main()
{
MapC mapTemp;
mapTemp.insert(make_pair("123",1));
mapTemp["234"] = 2;
mapTemp["345"] = 3;
cout<<"-------after insert same key by insert----------"<<endl;
mapTemp.insert(make_pair("123", 5));
Print(mapTemp);
cout<<"-------after insert same key by the following table ----------"<<endl;
mapTemp["123"] = 5;
Print(mapTemp);
return 0;
}
我们来看看效果
-------after insert same key by insert----------
key:123 value:1
key:234 value:2
key:345 value:3
-------after insert same key by the following table ----------
key:123 value:5
key:234 value:2
key:345 value:3
结论:insert无覆盖,下标方式覆盖,最后怎么用看自己了