下载此文档

map应用一例.doc


文档分类:中学教育 | 页数:约3页 举报非法文档有奖
1/3
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/3 下载此文档
文档列表 文档介绍
(make_pair("footbar",6));这种写法,?C/C++code#include<iostream>#include<map>#include<string>usingnamespacestd;intmain(){map<string,int>word_count;urs=1000;stringstr("footbar");(make_pair(str,6));//str直接为"footbar"时,(("footbar"))occurs=word_count["footbar"];cout<<occurs<<endl;return0;}原因:C++的函数模板规定模板参数只能为int型或constchar*型,如果你不指定具体的模板参数,编译器会试图自动推演,6的数据类型是int,但字符串常量的数据类型不是int或constchar*,所以推演失败。另一种改法:make_pair((constchar*)"abc",6)make_pair<std::string,int>(str,6)的用法是最好的,其次是make_pair(string("abc"),6)再次是make_pair((constchar*)"abc",6)pairandmake_pairPairsC++标准程序库中凡是“必须返回两个值”的函数,也都会利用pair对象classpair可以将两个值视为一个单元。容器类别map和multimap就是使用pairs来管理其健值/实值(key/value)的成对元素。pair被定义为struct,,:namespacestd{template<classT1,classT2>booloperator<(constpair<T1,T2>&x,constpair<T1,T2>&y){<||((<)&&<);}}make_pair():无需写出型别,就可以生成一个pair对象例:std::make_pair(42,'@');而不必费力写成:std::pair<int,char>(42,'@')当有必要对一个接受pair参数的函数传递两个值时,make_pair()尤其显得方便,voidf(std::pair<int,constchar*>);voidfoo{f(std::make_pair(42,'@'));//passtwovaluesaspair}1pair的应用pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选择pair。pair的实现是一个结构体,主要的两个成员变量是firstsecond因为是使用struct不是class,所以可以直接使用pair的成员变量。2make_pair函数templatepairmake_pair(T1a,T2b){return

map应用一例 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数3
  • 收藏数0 收藏
  • 顶次数0
  • 上传人2072510724
  • 文件大小18 KB
  • 时间2020-08-11