旅途

如果想飞得高,就该把地平线忘掉

map重点

实际上,用下标操作符把map 初始化至一组元素集合,会使每个值都被初始化为缺省值
,然后再被赋值为显式的值,如果元素是类对象,而且它的缺省初始化和赋值的运算量都很大,
就会影响程序的性能,尽管不会影响程序的正确性。

 map<string,int> mymap;
 mymap["hou"]=0;
 mymap["hua"]=1;
 mymap["liang"]=2;

 mymap.insert(map<string,int>::value_type("nihao",3));//尽量使用这种方式。


 cout<<mymap["nihao"]<<endl;
 mymap.insert(map<string,int>::value_type("nihao",4));
   cout<<mymap["nihao"]<<endl;----依旧输出3,这说明如果已经有了一个键值,是不能再输入的。
   cout<<mymap.count("nihao")<<endl;---输出1,实际上只会有0和1这两种可能。



但是只有当map 中存在这样一个键的实例时,该代码才会表现正常。如果不存在这样的实例,使用下标操作符会引起插入一个实例。

   int count=mymap.count("hou");
   if(count!=0)、、只有得到count不是0时,才可以安全操作。
    cout<<mymap["hou"]<<endl;

   map<string,int>::iterator ite=mymap.find("hou");
   if(ite!=mymap.end())
    cout<<(*ite).first<<"----"<<(*ite).second<<endl;

 cout<<mymap["ri"]<<endl;----注意,map里没有ri这个键值,因此会增加一个。

posted on 2007-09-20 17:54 旅途 阅读(361) 评论(0)  编辑 收藏 引用 所属分类: C++ STL


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理