vector容器的元素如何添加到map排序呢? vector内有结构体

xwl777 2014-06-14 07:56:40
typedef struct MINE
{
DWORD dwObject;
DWORD dwID;
float A;
COORDINATE coTarCoord;
//bool operator< (const MINE &a) const
//{
// if (coTarCoord.X != a.coTarCoord.X) //
// {
// return coTarCoord.X < a.coTarCoord.X;
// }
//}

}_MINE;

vector<_MINE>vec;
vector<_MINE>::iterator Iter;
map<INT,_MINE>mapMine;
map<INT,_MINE>::iterator mIter;

_MINE GetCollectionObjMAP(OUT vector<_MINE>& vec);
{
.................................
for(int i=0;i<100;i++)
{
// .................................代码长就不贴了
vec.push_back(Mine);
}

}

CString StrTmp6,SzBuf6;

void CDLGSET6::CollCoord
{

int iIndex =0;

m_edt_info.SetWindowText("");
fun.GetCollectionObjMAP(vec);

for (Iter = vec.begin();Iter != vec.end();Iter++)
{
fun.mapMine.insert(make_pair(iIndex,vec)); //这句编译通不过
StrTmp6.Format("%d Obj:0x%x ID:%x coord:%.2f,%.2f,%.2f",iIndex,mIter->second.dwObject,mIter- >second.dwID,mIter->second.coTarCoord.X,mIter->second.coTarCoord.Z,mIter->second.coTarCoord.Y);
SzBuf6 += StrTmp6;
SzBuf6 += "\r\n";
m_edt_info.SetWindowText(SzBuf6);
m_edt_info.LineScroll(m_edt_info.GetLineCount());
iIndex++;

}
}
}

vector容器的元素如何添加到map排序呢?
请大侠们帮我分析下什么原因
...全文
269 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
新撰组 2014-06-16
  • 打赏
  • 举报
回复
引用 3 楼 xwl777 的回复:
[quote=引用 2 楼 u012966744 的回复:] map<INT,_MINE>mapMine; 貌似Value是_MINE类型的 使用的时候咋就变成了 mapMine.insert(make_pair(iIndex,vec)); vector类型了? map 添加数据时要求key有<运算符算法 添加到map中后已经经过排序了
看了才知道自己错在哪里。。。 map<INT,vector<_MINI>>mapMine 才对吧? 但好像编译通不过 mapMine.insert(make_pair(iIndex,vec)); 插入的时候没什么要求把?[/quote] map<INT,vector<_MINI>>mapMine 这句话编译不过呢 可能是因为,vector<_MINI>>中的>>被编辑器解析城>>符 你要在>>中间加个空格> >这样试试
Burcy Wen 2014-06-16
  • 打赏
  • 举报
回复
编译通不过是不是还是写错了,map<INT,vector<_MINI>>mapMine 应该是map<INT,vector<_MINE>>mapMine ,
xwl777 2014-06-16
  • 打赏
  • 举报
回复
引用 7 楼 zhao4zhong1 的回复:
建议楼主先把http://www.cplusplus.com上面有关vector和map的例子程序全部过一遍。
就是各种度娘,阿歌都没什么结果,才来提问下 ^^
赵4老师 2014-06-16
  • 打赏
  • 举报
回复
建议楼主先把http://www.cplusplus.com上面有关vector和map的例子程序全部过一遍。
xwl777 2014-06-16
  • 打赏
  • 举报
回复
谢谢u012966744!编译通过了。。。能把VECTOR的数据插入MAP了,但怎么取出来呢? 刚开始学习MAP,感觉跟VECTOR很大不同... vector<_MINE>vec; vector<_MINE>::iterator Iter; map<INT,vector<_MINE> >mapMine; map<INT,vector<_MINE> >::iterator mIter; GetCollectionObjVEC(vec); for (Iter = vec.begin();Iter != vec.end();Iter++) { mapMine.insert(make_pair(iIndex,vec)); } for (mIter = mapMine.begin();mIter != mapMine.end();mIter++) { StrTmp6.Format("%d %x",mIter->first,mIter->second.dwID); //mIter->second.dwID编译错误,取不到我结构体里面的数据了? }
新撰组 2014-06-15
  • 打赏
  • 举报
回复
map<INT,_MINE>mapMine; 貌似Value是_MINE类型的 使用的时候咋就变成了 mapMine.insert(make_pair(iIndex,vec)); vector类型了? map 添加数据时要求key有<运算符算法 添加到map中后已经经过排序了
xwl777 2014-06-15
  • 打赏
  • 举报
回复
引用 2 楼 u012966744 的回复:
map<INT,_MINE>mapMine; 貌似Value是_MINE类型的 使用的时候咋就变成了 mapMine.insert(make_pair(iIndex,vec)); vector类型了? map 添加数据时要求key有<运算符算法 添加到map中后已经经过排序了
看了才知道自己错在哪里。。。 map<INT,vector<_MINI>>mapMine 才对吧? 但好像编译通不过 mapMine.insert(make_pair(iIndex,vec)); 插入的时候没什么要求把?
xwl777 2014-06-15
  • 打赏
  • 举报
回复
Up...

64,676

社区成员

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

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