永发信息网

C++pair 用法疑问

答案:2  悬赏:20  手机版
解决时间 2021-02-19 07:22
代码如下:
static bool PairCmp(pair& pairA, pair& pairB) //第1行
{
return pairA.second > pairB.second;
}
void vecSort()
{
vector > vecItem; //第7行
//为vecItem插入若干数据
......
//插入结束
sort(vecItem.begin(), vecItem.end(), PairCmp); //第20行
}

编译报错:
第1行pair在此作用域中尚未声明
第7行vector在此作用域中尚未声明
第20行sort在此作用域中尚未声明

之后修改代码,在pair vector sort前加上std::,又报错:
第20行:/usr/lib/gcc/x86_64-redhat-linux/4.4.7/../../../../include/c++/4.4.7/bits/stl_algo.h:124: 错误:将类型为‘std::pair&’的引用初始化为类型为‘const std::pair’的表达式无效

怎么解决??
最佳答案
code.insert(make_pair(123,456)); 改为: code.insert( std::make_pair( 123, 456 ) );
全部回答
使用方法如下: 1\pair的类型: pair 是 一种模版类型。每个pair 可以存储两个值。这两种值无限制。也可以将自己写的struct的对象放进去。。 pair p; pair p; pair p; 2、应用: 如果一个函数有两个返回值 的话,如果是相同类型,就可以用数组返回,如果是不同类型,就可以自己写个struct ,但为了方便就可以使用 c++  自带的pair ,返回一个pair,其中带有两个值。除了返回值的应用,在一个对象有多个属性的时候 ,一般自己写一个struct ,如果就是两个属性的话,就可以用pair 进行操作。。。 应用pair 可以省的自己写一个struct 。。。如果有三个属性的话,其实也是可以用的pair 的 ,极端的写法 pair > 写法极端。(后边的两个 > > 要有空格,否则就会是 >>  位移运算符) makr_pair: pairp (5,6); pair p1= make_pair(5,6); pair p2 ("aa",5.0); pair p3 = make_pair("aa",5.0); 有这两种写法来生成一个pair。 3、如何取得pair 每个pair 都有两个属性值  first  和second cout< author; author pro("may", "lily"); author joye("james", "joyce");
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
【一个楚字一个汉字,中间一条河,猜成语】
简单学堂怎么加入呢??
从东沙各庄到地铁天通苑北的公交车末班时间
difficult反义词
绵阳哪里有闪付pos机
JTAG接口的定义
Should i stay,should i go? 英语什么意思?
蓝山咖啡馆这个地址在什么地方,我要处理点事
为什么重大事故死亡人数总是不超过37人?
在淘宝网买的东西,过了15天后发现是假货,怎
刚买的二手3100元麻烦大侠看看值吗 型号:MD2
晚净高171.5,请问早上净高多少?
悬马关地址在哪,我要去那里办事
烫水蛭治啥病效果最佳
品红溶液.醋酸铅试纸、PH试纸在使用前必须先
推荐资讯
康源南路/西关正街(路口)这个地址在什么地方
利君窗帘怎么去啊,我要去那办事
功耗计算问题,一块电池标称是10.8V/4400MAH,
鑫家商场地址在什么地方,想过去办事
拐沟村在哪里啊,我有事要去这个地方
手机作家马慧娟qq号
功夫熊猫的英文影评
男人喜欢女人的内衣是为什么
【供给与需求】请问:供给与需求的关系?供给变
成都华夏药业连锁有限责任公司致胜店这个地址
使用原始启动软盘或cd-rom,安装不了系统
文汇报苏州记者站地址有知道的么?有点事想过
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?