社区
C++ 语言
帖子详情
pair的一个问题
tmaclove
2007-04-23 07:45:08
今天在用pair的时候发现pair不包含iterator对象
即:pair<string,string>::iterator iter 的用法是错的
请问这是为什么呢??
pair也是你中内置的数据类型,为什么不能用呢?
iterator在用的时候有什么特殊要求么?
谢谢解答
...全文
314
9
打赏
收藏
pair的一个问题
今天在用pair的时候发现pair不包含iterator对象 即:pair::iterator iter 的用法是错的 请问这是为什么呢?? pair也是你中内置的数据类型,为什么不能用呢? iterator在用的时候有什么特殊要求么? 谢谢解答
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lzp729
2007-04-24
打赏
举报
回复
我借楼问个问题:
VC8 <utility>头文件针对swap 有两个模板函数,一个是普通的,一个是针对pair写的,我不明白为什么要这样设计,我认为针对pair的设计并不会比通用的swap更有效率,相反还会多义词调用,而且模板在实例化的时候要根据两个类型来实例化,编译和运行的效率都对低一点点,不明白为什么要这样做?
参见:http://www.lzp729.cn/?p=56&page=3
关注中
chenyi3315
2007-04-24
打赏
举报
回复
pair就一对数据,不需要iterator啊
jixingzhong
2007-04-24
打赏
举报
回复
不是容器,为什么需要 迭代器?
0黄瓜0
2007-04-24
打赏
举报
回复
VC8 <utility>头文件针对swap 有两个模板函数,一个是普通的,一个是针对pair写的,我不明白为什么要这样设计,我认为针对pair的设计并不会比通用的swap更有效率,相反还会多义词调用,而且模板在实例化的时候要根据两个类型来实例化,编译和运行的效率都对低一点点,不明白为什么要这样做?
参见:http://www.lzp729.cn/?p=56&page=3
关注中
================
STL对复杂结构之间的交换,是交换两个结构的指针,不是交换值.
比如两个vector的交换,若用全局的swap则是交换值,效率低,而用vector自己定义的swap,则只交换数据的头指针和改写少量数据.
对pair专门定义的swap也可能是这种情况.
rainstormed
2007-04-24
打赏
举报
回复
pair就是一对数据,又不是容器,用不着iterator
lidongri
2007-04-24
打赏
举报
回复
iterator是遍历容器用的,pair不是容器
sirguan
2007-04-24
打赏
举报
回复
iterator是遍历容器用的,pair不是容器,所以不需要有迭代器。
楼主可能认为iterator是遍历结构中的每个成员,这在一定程度上是对的,因为vector等容器的iterator确实是在读取成员,但并不是读取所有的成员,容器中的其他成员没有被遍历,iterator要遍历的只是提供有用数据的那部分成员。
建议看看《c++标准程序库》这本书
飞哥
2007-04-23
打赏
举报
回复
就一个对
template<class _T1, class _T2> struct pair {
typedef _T1 first_type;
typedef _T2 second_type;
pair()
: first(_T1()), second(_T2()) {}
pair(const _T1& _V1, const _T2& _V2)
: first(_V1), second(_V2) {}
template<class U, class V> pair(const pair<U, V> &p)
: first(p.first), second(p.second) {}
_T1 first;
_T2 second;
};
晨星
2007-04-23
打赏
举报
回复
pair又不是个容器类,哪来的iterator啊?
“pair也是你中内置的数据类型,为什么不能用呢?”
——你这句话很怪哦,int倒是内置的数据类型,有iterator么?
scheme里关于cons、list、p
air
的
一个
小
问题
问题
:(cons (cons 1 '()) (cons 2 '())) 的结果为什么是: ((1) 2)解释:(cons (cons 1 '()) (cons 2 '()))=> ((1) . (2 . ())) ;从左到右的顺序,先解释了(cons 1'()) 为 (1),然后为加上点,最后解释(cons 2 '())为(2 . ())。注意:最后两个的关系
一个
是创建,
一个
是显示。=> ((1) . 2);此为简化的过程。原理是scheme对形如(1 . (2 . ()))的点对的简化形式就是(1 2
Trick : p
air
的二分
问题
p
air
的二分
问题
关于标准库中std::make_p
air
的
一个
问题
namespace UnitTest1 { TEST_CLASS(UnitTest1) { public: TEST_METHOD(TestMethod1) { // TODO: 在此输入测试代码 int i = 0, j = 0; std::make_p
air
(i, j); } }; } 请看以上这段伪代码 先说
问题
这段代码在vs20
两个有序数组,从中各取
一个
组成p
air
,求和最小的前K个p
air
(杨氏矩阵top k
问题
)
不需要把所有的数放进优先队列,每次只放当前数的下边和右边的数,其他更远的数,肯定比这两个数更大, vector> topKP
air
(vector &A, vector &B, int k) { vector> ans; if (A.empty() || B.empty()) return ans; priority_queue>, vector>>, greater>>> pq;
关于c++ p
air
自己遇到的
一个
问题
?为何不一样?为何第
一个
程序不能返回p
air
内数组的值呢?(已经解决)
#include <string> #include <iostream> #include <memory> using namespace std; p
air
<int *,int *> ptr() { int p1[3]={123,2,3}; int p2[3]={1234,1,2}; return make_p
air
(p1,p2); } int main() { p
air
<int*,int*> p = ptr(); int *p1 = p.
C++ 语言
65,213
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章