


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025知识产权许可转让合同
- 运动品牌数字化营销策略与用户体验情感化设计研究
- 2025电影联合制作合同
- 2025年中国植物天然纤维行业市场运行格局及投资前景预测分析报告
- 时尚零售业快时尚模式可持续发展报告2025
- 2025年有色金属行业资源循环利用产业链产业链协同创新机制设计报告
- 直播电商主播粉丝互动与营销策略研究报告
- 等差、等比数列公式总结模版
- 金融机构数字化转型中的风险偏好与风险控制报告
- 医疗与医药行业:医疗健康产业市场细分领域技术创新方向
- 12j912-2常用设备用房
- 苏科版二年级下册劳动第8课《杯套》课件
- GB/T 28799.2-2020冷热水用耐热聚乙烯(PE-RT)管道系统第2部分:管材
- GB/T 20203-2006农田低压管道输水灌溉工程技术规范
- GB/T 14216-2008塑料膜和片润湿张力的测定
- 新型节能型建筑材料的发展方向论文
- 最新班组级安全培训试卷及答案
- 工程开工令模板
- 2022更新国家开放大学电大《计算机组网技术》网络核心课形考任务三及四答案
- 特种设备检查记录
- 武广客运专线隧道防排水技术的突破QC成果
评论
0/150
提交评论