下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、word_count.insert(make_pair(footbar, 6); 这种写法,怎么在vc6.0 编译通不过?C/C+ code#include #include #include using namespace std;int main() map word_count; int occurs = 1000; string str(footbar); word_count.insert(make_pair(str, 6); / str直接为 footbar时,vc6.0不能编译通过 if (word_count.count(footbar) occurs = word_count
2、footbar; cout occurs endl; return 0;原因:C+的函数模板规定模板参数只能为int 型或const char*型,如果你不指定具体的模板参数,编译器会试图自动推演,6的数据类型是int,但字符串常量的数据类型不是int或const char*,所以推演失败。另一种改法:make_pair(const char*)abc,6)make_pair (str, 6)的用法是最好的,其次是make_pair (string(abc), 6)再次是make_pair (const char*)abc, 6)pair and make_pairPairs C+标准程序库中
3、凡是“必须返回两个值”的函数, 也都会利用pair对象 classpair可以将两个值视为一个单元。容器类别map和multimap就是使用pairs来管理其健值/实值(key/value)的成对元素。 pair被定义为struct,因此可直接存取pair中的个别值.1 / 3两个pairs互相比较时, 第一个元素正具有较高的优先级. 例: namespace std template bool operator (const pair&x, const pair&y) return x.firsty.first | (y.firstx.first)&x.secondy.second); ma
4、ke_pair():无需写出型别, 就可以生成一个pair对象 例: std:make_pair(42, ); 而不必费力写成: std:pair(42, )当有必要对一个接受pair参数的函数传递两个值时, make_pair()尤其显得方便, void f(std:pair);void foo f(std:make_pair(42, ); /pass two values as pair 1 pair的应用pair是将2个数据组合成一个数据,当需要这样的需求时就可以使用pair,如stl中的map就是将key和value放在一起来保存。另一个应用是,当一个函数需要返回2个数据的时候,可以选
5、择pair。 pair的实现是一个结构体,主要的两个成员变量是first second 因为是使用struct不是class,所以可以直接使用pair的成员变量。2 make_pair函数template pair make_pair(T1 a, T2 b) return pair(a, b); 很明显,我们可以使用pair的构造函数也可以使用make_pair来生成我们需要的pair。 一般make_pair都使用在需要pair做参数的位置,可以直接调用make_pair生成pair对象很方便,代码也很清晰。 另一个使用的方面就是pair可以接受隐式的类型转换,这样可以获得更高的灵活度。灵活
6、度也带来了一些问题如:std:pair(1, 1.1);std:make_pair(1, 1.1);是不同的,第一个就是float,而第2个会自己匹配成double。make_pair (STL Samples)/ mkpair.cpp/ compile with: /EHsc/ Illustrates how to use the make_pair function./ Functions: make_pair - creates an object pair containing two data/ elements of any type.#include #include using namespace std;/* STL pair data type containing int and float*/typedef struct pair PAIR_IF;int main(void) PAIR_IF pair1=make_pair(18,3.14f); cout pair1.first pair1.
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年诊所扩展合作协议
- 2026年商业养老保险合同
- 上海浦东新区2025-2026学年高一上化学期中监测模拟试题含解析
- 丹毒下肢个案护理
- 大动脉转位术后心律失常个案护理
- 许昌陶瓷职业学院《社会调查方法实验》2024-2025学年第一学期期末试卷
- 陕西省榆林一中2025-2026学年生物高一第一学期期末质量检测试题含解析
- 肾肉芽肿的护理
- 静脉输液护理要点
- 新生儿鱼鳞病外出护理:安全与舒适兼顾
- DB23T 2334-2019 装配式混凝土渠道应用技术规范
- 《千里江山图》课件ppt
- 酒店公寓物业管理规约
- 通透(杨天真重磅新作)
- DB32-T 4281-2022 江苏省建筑工程施工现场专业人员配备标准
- 区块链技术及应用PPT完整全套教学课件
- 钢结构提升安全技术交底
- 《商法总论》课件:商法概论
- 14D504 接地装置安装
- 【2022】举报信(法官滥用职权,违规办案)
- 高考语文备考之整本书阅读《红楼梦》名著导读与章节训练(19~23回)
评论
0/150
提交评论