首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么正确取出存有结构体的vector中的成员

2012-04-09 
如何正确取出存有结构体的vector中的成员设计了vector 其中放入结构体如下C/C++ codestruct OnLineUser{ch

如何正确取出存有结构体的vector中的成员
设计了vector 其中放入结构体如下

C/C++ code
struct OnLineUser{    char IP_addr[IP_MAX_LENGTH];//在线用户IP地址        TalkDLG *UIDialogOpen;//是否已与该用户打开对话框};typedef std::vector<OnLineUser> VECTOR_ELIST;typedef std::vector<OnLineUser>::const_iterator ITER;

在之后对其调用时下标是不是无法正确取出如下
C/C++ code
OnLineList[1].UIDialogOpen = (TalkDLG *) pThread->m_pMainWnd;

但是改用指针后,为什么下面最左边的括号报错,说必须是可改变的左值?请大神指教
(*iter).UIDialogOpen = (TalkDLG *) pThread->m_pMainWnd;//获得线程窗口指针

[解决办法]
那就是说,不让你改变左值了,可能用了const什么的
[解决办法]
既然要赋值 又何必定义为const_iterator 迭代器呢
[解决办法]
const_iterator 指向常量对象 不允许修改
[解决办法]
typedef std::vector<OnLineUser>::const_iterator ITER;
改为:typedef std::vector<OnLineUser>::iterator ITER;
我只能说有可能是这儿的问题
还可以告诉你用下标是可以的,应该是你用的有问题

热点排行