永发信息网

C++pair 用法疑问

答案:2  悬赏:20  手机版
解决时间 2021-02-19 07:22
  • 提问者网友:回忆在搜索
  • 2021-02-18 16:59
代码如下:
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’的表达式无效

怎么解决??
最佳答案
  • 五星知识达人网友:走死在岁月里
  • 2021-02-18 18:07
code.insert(make_pair(123,456)); 改为: code.insert( std::make_pair( 123, 456 ) );
全部回答
  • 1楼网友:渡鹤影
  • 2021-02-18 18:53
使用方法如下: 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");
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯