如何用struct作为map的Key
struct EntryInfo
{
EntryInfo()
{
memset( this, 0, sizeof(EntryInfo) );
}
char achEntryName[16];
byte byEntryType;
byte byAddrType;
WORD wDialBitRate;
char achUIName[16];
BOOL operator == ( const EntryInfo &tEntry ) const
{
if ( byEntryType != tEntry.byEntryType )
return FALSE;
if( byAddrType != tEntry.byAddrType )
return FALSE;
if ( strcmp( achEntryName, tEntry.achEntryName ) != 0 )
return FALSE;
return TRUE;
}
BOOL operator < ( const EntryInfo &tEntry ) const
{
if( this->byEntryType > tEntry.byEntryType )
{
return FALSE;
}
else if(this->byEntryType == tEntry.byEntryType)
{
if( this-> byAddrType > tEntry.byAddrType )
{
return FALSE;
}
else if( strcmp(this->achEntryName, tEntry.achEntryName) >0 )
{
if( strcmp( this->achUIName, tEntry.achUIName ) > 0 )
{
return TRUE;
}
else
{
return FALSE;
}
}
else
{
return TRUE;
}
}
else
{
return TRUE;
}
}
};
typedef map<EntryInfo, int> defMap;
defMap g_map;
void CStl_mapDlg::OnButton2()
{
EntryInfo t1;
strcpy(t1.achEntryName, "sq");
strcpy(t1.achUIName, "sq_UI");
t1.byAddrType = 1;
t1.byEntryType =1;
t1.wDialBitRate = 1;
g_map.insert( defMap::value_type(t1, 1));
EntryInfo t2;
strcpy(t2.achEntryName, "sq2");
strcpy(t2.achUIName, "sq_UI2");
t2.byAddrType = 2;
t2.byEntryType =2;
t2.wDialBitRate = 2;
g_map.insert( defMap::value_type(t2, 2));
EntryInfo t3;
strcpy(t3.achEntryName, "sq3");
strcpy(t3.achUIName, "sq_UI3");
t3.byAddrType = 3;
t3.byEntryType =3;
t3.wDialBitRate = 3;
g_map.insert( defMap::value_type(t3, 3));
}
void CStl_mapDlg::OnButton3()
{
EntryInfo t3;
strcpy(t3.achEntryName, "sq3");
strcpy(t3.achUIName, "sq_UI3");
t3.byAddrType = 3;
t3.byEntryType =3;
t3.wDialBitRate = 3;
int x = g_map[t3];//饭后一直是0
}
...全文
相关推荐
Go-go有序map用于json输出有序key的对象和后端有序循环map取值
go 有序map,用于json输出有序key的对象和后端有序循环map取值
struct_slice_map
struct_slice_map
Javacript中自定义的map.js 的方法
js中没有map这个类,只能自己写一个。以下map.js和map-util.js都是自定义的map,任选其一就可以。你可以用它来像java里new Map()和put()、remove()、get()等方法。 map.js: function Map() { var struct = function(key, value) { this.key = key; this.value = value; } var put = function(key, value){ for (var i = 0; i < this.arr.length; i++) {
STL中map用法详解 STL中map用法详解 STL中map用法详解
STL中map用法详解 STL中map用法详解 STL中map用法详解
go代码-测试:用map不存在的key的值赋值给变量,则变量是map对应值类型的默认值。
go代码-测试:用map不存在的key的值赋值给变量,则变量是map对应值类型的默认值。


