//定义
struct ko
{
int ID;
CString name;
};map<int,ko> map_list;
map<int,ko>::iterator itor;//插入
for(int i=0;i<=10;i++)
{
ko ko_info;
m_MapInfo.insert(pair<int,ko>(i, ko_info));
}
//如果插入的结构体为 {1,"123"} {2,"456"} {1,"789"} {3,"abc"} {4,"efg"}..10个结构体//遍历
//我想删除KO结构体ID相同的,也就是删除第三个
//如何遍历得到 {1,"123"} {2,"456"} {3,"abc"} {4,"efg"}..
//有什么方法吗?
解决方案 »
- win7/Vista中使用QueryServiceConfig获取服务信息
- VB程序转VC要注意什么?
- 怎样把DICOM(.dcm)图象作为字段存储到SQLserver
- 【桌面图标任我排】请问怎样控制 桌面 图标 的 行为?
- 【D3D问题(借贵地一点人气)】如何给用D3DXCreateCylinder创建出来的圆柱体贴上纹理?
- 关于OPENGL纹理贴图的难点问题?
- WINDOWS是什么写的?
- (3分问题)CTreeCtrl *treeCtrl;下面该怎么写呢???
- 如何用程序检测一台机器上是否装有软驱?用GetDriverType()函数,不管是否装有软驱都得到软驱为A?所以不能使用,还有其他办法吗??
- 如何禁止一个程序的多个实例同时运行?
- #define NETWORK_EVENT WM_USER+166中“WM_USER+166”是什么意思?
- win32 SDK编程如何添加单选框和复选框呢?
或者遍历存到另一个map里面
{
ko* pKo = map_list[i]; // 插入之前判断一下是否存在
if(pKo == NULL)
pKo = new ko();
}
map_list中根本就不会同时有{1,"123"}{1,"789"},只有第一个{1,"123"}了
{
int ID;
CString name; bool operator==(const ko& ojb)
{
if (ID == obj.ID) return true;
else return false;
}
};
定义==运算符后,map插入的时候就不会有ID重复的了。
if( map_list.find(ID) == map_list.end())
{
ko ko_info;
m_MapInfo.insert(pair<int,ko>(i, ko_info));}