iterator用法问题?

clzzcl 2004-10-28 01:27:28
如下程序
#include "stdafx.h"
#include "ESession.h"

int main()
{
list<CESession> list_Session;
list<CESession>::iterator iterFind;
CESession session1, session2;
session1.Session_Start(30);
session2.Session_Start(20);
list_Session.push_back(session1);
list_Session.push_back(session2);
for (iterFind=list_Session.begin(); iterFind!=list_Session.end(); iterFind++)
{
CESession* tempSession = &(*iterFind); //这句应该怎么写呀???
if (tempSession->Get_TimeOut() == 20)
{
cout << tempSession->Get_SessionId() << endl;
}
}

return 0;
}

iterFind到底是个什么,怎么才能取一个指向session类的指针.
...全文
308 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
carylin 2004-10-28
  • 打赏
  • 举报
回复
其实楼主没必要用指针的,直接用iterator更好,iterator也有指针的功能,但其功能又更强大,是“超级指针”,可以这么写:
for (iterFind=list_Session.begin(); iterFind!=list_Session.end(); iterFind++)
{
//CESession* tempSession = &(*iterFind); //这句应该怎么写呀???
if (iterFind->Get_TimeOut() == 20)
{
cout << iterFind->Get_SessionId() << endl;
}
}
ddgfei 2004-10-28
  • 打赏
  • 举报
回复
CESession* tempSession = iterFind;
CESession tempSession = *iterFind;
两样都可以,看你想做什么了
xuzheng318 2004-10-28
  • 打赏
  • 举报
回复
关注一下!
clzzcl 2004-10-28
  • 打赏
  • 举报
回复
知道了,原来这样写就可以,
CESession tempSession = *iterFind;
原来push_back不是放了指针进去,而是复制了一份,所以是实现拷贝构造函数呀。
flyelf 2004-10-28
  • 打赏
  • 举报
回复
CESession *tempSession = iterFind;
cqhejun 2004-10-28
  • 打赏
  • 举报
回复
关注!!

64,654

社区成员

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

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