学习C++primer 第26天 之 小问题

jinjunweiruan 2008-07-28 07:40:42
1.先讲讲pair和map之间的区别和联系。。怎么我看pair搞的也像一个容器 啊。。。。。

2.pair类型提供了这样2个操作:“p.first p.second" 书上解释的是说返回p中名为first(second)的(公有)数据成员.
这个怎么去理解?可以举几个例子,


3.关联容器感觉难多了...呵.

XX,可能问题有些白痴.呵呵...
...全文
180 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
大写的池 2008-07-28
  • 打赏
  • 举报
回复
可以结合看 effective stl
Eleven 2008-07-28
  • 打赏
  • 举报
回复
Up
Gob00st 2008-07-28
  • 打赏
  • 举报
回复
建议lz看<<C++标准程序库>>
sunhuanwen 2008-07-28
  • 打赏
  • 举报
回复
1 map和multimap 是使用pair来管理其键值/实值(key/value)的成对元素

2 pair被定义成struct 而不是class 所以pair中的所有成员都是公有的,可以直接存入pair中的个别值
pair<int, int> x;
x = make_pair<3, 5>;
那么x.first和x.second可以直接用来输出.
即cout<<x.first<<x.second;

3 建议看一个<<C++标准程序库>>
candyice 2008-07-28
  • 打赏
  • 举报
回复
1、pair包含两个数据值,与vector容器不同的是,在创建pair对象时,必须提供两个类型名,pair对象所包含的两个数据成员各自对应的类型名字,这两个类型不一定相同
map是键值对的组合。
2、举个例子:
pair<T1,T2> p1(v1,v2); 创建了一个pair对象,其中first成员初始化为v1,second成员初始化为v2,p1.first就是返回v1,p1.second返回的是v2
herman~~ 2008-07-28
  • 打赏
  • 举报
回复
pair 不是容器,就是一键 值 对


jay的Fans 2008-07-28
  • 打赏
  • 举报
回复
1.pair是一个数据的集合,包含两个数据,所以它可以作为实现map容器的工具,实现键值对的组合。pair并不能作为容器来使用。
2.pair被实做为一个结构体,first和second成员都是公有成员,所以当构造了个pair类型的对象的时候可以直接返回对象的数据成员。
3.。。。
HelloDan 2008-07-28
  • 打赏
  • 举报
回复
先讲讲pair和map之间的区别和联系。。怎么我看pair搞的也像一个容器

再看看书吧。是有区别的,pair的只是一个二元对, map是装二元对的,里面可能有N个。
C++ Primer习题集(第五版) , 带目录完整版。 --------------------------------------------------------------------------- 目录 第1章............................................................ 1 练习1.1 练 习1.25 第2 章变量和基本类型................................................. 12 练习2.1 练 习2.42 第3 章字符串、向量和数组..............................................37 练习3.1 练 习3.45 第4 章表达式......................................................... 80 练习4.1 练 习4.38 第5 章语句........................................................... 99 练习5.1 练 习5.25 第6 章函数.......................................................... 120 练习6.1 练 习6.56 m m m ...................................................................... 152 练习7.1 练 习7.58 第8 章1 0库..........................................................183 练习8.1 练 习8.14 第9 章顺序容器...................................................... 193 练习9.1 练 习9.52 第10章泛型算法..................................................... 234 练习10.1 练 习10.42 目录 ◄ v 第11章关联容器..................................................... 273 练习11.1 练 习11.38 第12章动态内存..................................................... 297 练习12.1 练 习12.33 第13章拷贝控制..................................................... 331 练习13.1 练 习13.58 第14章重载运算与类型转换............................................368 练习14.1 练 习14.53 第15章面向对象程序设计..............................................399 练习15.1 练 习15.42 第16章模板与泛型编程............................................... 424 练习16.1 练 习16.67 第17章标准库特殊设施............................................... 458 练习17.1 练 习17.39 第18章用于大型程序的工具............................................483 练习18.1 练 习18.30 第19章特殊工具与技术............................................... 502 练习19.1 练 习19.26
1.下载和安装VC++2008 2.下载和安装VC++2010 3.第1章 快速入门 4.第2章 基本内置类型 5.第2章 重点习题解答 6.第2章 字面值常量 7.第2章 变量 8.第2章 变量名 9.第2章 定义对象 10.第2章 声明和定义 11.第2章 名字的作用域 12.第2章 const 限定符 13.第2章 引用 14.第2章 typedef 15.第2章 枚举 16.第2章 类类型 17.第2章 编写自己的头文件 18.第3章 命名空间的using声明 19.第3章 标准库 string 类型 (1) 20.第3章 标准库 string 类型 (2) 21.第3章重点习题解答 22.第3章标准库string类型(3) 23.第3章标准库vector类型 24.第3章重点习题解答 25.第3章迭代器简介 26.二进制和十六进制 27.第3章标准库bitset类型 28.标准库bitset应用实例 29.第4章数组 30.第4章指针的引入 31.第4章使用指针操作数组元素 32.第4章指针和const限定符 33.第4章C风格字符串 34.第4章创建动态数组 35.第4章新旧代码的兼容 36.第4章多维数 37.第5章算术操作符 38.第5章关系操作符和逻辑操作符 39.第5章位操作符 40.第5章赋值操作符 41.第5章自增和自减操作符 42.第5章箭头操作符 43.第5章条件操作符和逗号操作符 44.第5章new和delete表达式 45.第5章显式转换 46.第6章简单语句 47.第6章if语句 48.第6章switch语句 49.第6章while语 50.第6章for语句 51.第6章dowhile语句 52.第6章break,continue,goto语句 53.第6章6.13try块和异常处理 54.第6章6.13.3标准异常 55.第6章6.14使用预处理器进行调试 56.第7章函数的定义 57.第7章参数传递-非引用形参 58.第7章参数传递-引用参数 59.第7章参数传递-vector和其他容器类型的形参 60.第7章参数传递-数组形参 61.第7章main处理命令行选项 62.第7章return语句 63.第7章递归 64.第7章函数声明 65.第7章局部对象 66.第7章内联函数 67.第7章类的成员函数 68.第7章类的构造函数 69.第7章重载函数 70.第7章重载与作用域 71.第7章重载函数函数匹配 72.第7章重载函数实参转换 73.第7章指向函数的指针 74.第8章面向对象的标准IO库 75.第8章条件状态 76.第8章文件流对象的使用 77.第8章重点习题解答 78.第8章文件模式 79.第8章一个打开并检查输入文件的程序 80.第8章字符串流
1.第9章 顺序容器 - STL deque 2.第9章 顺序容器 - STL list 3.第9章 9.7 容器适配器 - 栈适配器 4.第9章 9.7 容器适配器 - 队列 5.第9章 9.7 容器适配器 - 优先级队列 6.第9章 9.1 顺序容器的定义 7.第9章 9.2 迭代器和迭代器范围 8.第9章 9.3 顺序容器的操作(1) 9.第9章 9.3 顺序容器的操作(2) 10.第9章 9.3 顺序容器的操作(3) 11.第9章 9.3 顺序容器的操作(4) 12.第9章 9.3 顺序容器的操作(5) 13.第9章 9.3 顺序容器的操作(6) 14.第9章 9.3 顺序容器的操作(7) 15.第9章 9.4 vector容器的自增长 16.第9章 9.5 容器的选用 17.第9章 9.6 再谈string类型(1) 18.第9章 9.6 再谈string类型(2) 19.第9章 9.6 再谈string类型(3) 20.第9章 9.6 再谈string类型(4) 21.第9章 9.6 再谈string类型(5) 22.第10章 map 和 multimap 23.第10章 set 和 multiset 24.第11章 算法简介 25.第11章 函数对象简介 26.第11章 算法 元素计数 27.第11章 算法 最大值和最小值 28.第11章 算法 查找算法(1) 29.第11章 算法 查找算法(2) 30.第11章 算法 查找算法(3) 31.第11章 算法 查找算法(4) 32.第11章 算法 查找算法(5) 33.第11章 算法 查找算法(6) 34.第11章 算法 查找算法(7) 35.第11章 算法 for_each 36.第11章 算法 区间的比较 37.第11章 算法 复制元素 38.第11章 算法 transform 39.第11章 算法 比较for_each和transform 40.第11章 算法 交换算法 41.第11章 算法 填充新值 42.第11章 算法 替换算法 43.第11章 算法 删除算法 (1) 44.第11章 算法 删除算法 (2) 45.第11章 算法 删除算法 (3) 46.第11章 算法 逆转和旋转 47.第11章 算法 排列组合 48.第11章 算法 重排和分区 49.第11章 算法 对所有元素排序 50.第11章 算法 局部排序 51.第11章 算法 根据第n个元素排序 52.第11章 算法 Heap算法

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧