VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 365|回复: 3

[求助] vector容器使用位置错误-老大求助

[复制链接]
00_avatar_middle
online_vip 发表于 2018-11-10 21:30:56 | 显示全部楼层 |阅读模式


代码如下
Object* LookingForObjectId(HWND hWnd,UINT X,UINT Y)
{
         Object* pThis = NULL;       
     vector<Object*>::iterator it;
          for (it = g_Objects.begin(); it != g_Objects.end(); it++){

          }



        return  pThis;
}
报错如下
/////////////////////////////////////////////////
>------ 已启动生成: 项目: EngineUI, 配置: Debug Win32 ------
1>正在编译...
1>Global.cpp
1>c:\users\administrator\desktop\engineui\engineui\global.cpp(118) : error C2679: 二进制“=”: 没有找到接受“std::_Vector_iterator<_Ty,_Alloc>”类型的右操作数的运算符(或没有可接受的转换)
1>        with
1>        [
1>            _Ty=LPVOID ,
1>            _Alloc=std::allocator<LPVOID >
1>        ]
1>        c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector(405): 可能是“std::_Vector_iterator<_Ty,_Alloc> &std::_Vector_iterator<_Ty,_Alloc>::operator =(const std::_Vector_iterator<_Ty,_Alloc> &)”
1>        with
1>        [
1>            _Ty=Object *,
1>            _Alloc=std::allocator<Object *>
1>        ]
1>        试图匹配参数列表“(std::_Vector_iterator<_Ty,_Alloc>, std::_Vector_iterator<_Ty,_Alloc>)”时
1>        with
1>        [
1>            _Ty=Object *,
1>            _Alloc=std::allocator<Object *>
1>        ]
1>        and
1>        [
1>            _Ty=LPVOID ,
1>            _Alloc=std::allocator<LPVOID >
1>        ]
1>c:\users\administrator\desktop\engineui\engineui\global.cpp(118) : error C2678: 二进制“!=”: 没有找到接受“std::_Vector_iterator<_Ty,_Alloc>”类型的左操作数的运算符(或没有可接受的转换)
1>        with
1>        [
1>            _Ty=Object *,
1>            _Alloc=std::allocator<Object *>
1>        ]
1>        c:\program files\microsoft sdks\windows\v6.0a\include\guiddef.h(197): 可能是“int operator !=(const GUID &,const GUID &)”
1>        c:\program files (x86)\microsoft visual studio 9.0\vc\include\vector(214): 或       “bool std::_Vector_const_iterator<_Ty,_Alloc>::operator !=(const std::_Vector_const_iterator<_Ty,_Alloc> &) const”
1>        with
1>        [
1>            _Ty=Object *,
1>            _Alloc=std::allocator<Object *>
1>        ]
1>        试图匹配参数列表“(std::_Vector_iterator<_Ty,_Alloc>, std::_Vector_iterator<_Ty,_Alloc>)”时
1>        with
1>        [
1>            _Ty=Object *,
1>            _Alloc=std::allocator<Object *>
1>        ]
1>        and
1>        [
1>            _Ty=LPVOID ,
1>            _Alloc=std::allocator<LPVOID >
1>        ]
1>生成日志保存在“file://c:\Users\Administrator\Desktop\EngineUI\EngineUI\Debug\BuildLog.htm”
1>EngineUI - 2 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========




上一篇:[定制软件] 急急急求可以做留言板带图片留言的大神
下一篇:浏览器http协议下载
51_avatar_middle
online_admins 发表于 2018-11-10 22:12:20 | 显示全部楼层
g_Objects 的类型是 vector<Object*> 吗?
貌似迭代器 it 跟 vector<Object*> 的类型不一致
00_avatar_middle
ico_lz  楼主| 发表于 2018-11-11 09:30:17 来自手机 | 显示全部楼层
LPVOID型的
51_avatar_middle
online_admins 发表于 2018-11-11 12:47:14 | 显示全部楼层

那肯定不行了,vector 容器是什么类型的,用迭代器进行遍历的时候就要什么类型,所以如果 vector 容器是 g_Objects 是 vector<Object*> 类型的,那么迭代器就要用 vector<Object*>::iterator it 进行遍历,如果 g_Objects 是 vector<int*> 类型的,那么迭代器就要用 vector<int*>::iterator it 进行遍历,以此类推!
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-3-20 01:52

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表