static stdmaptag_ClientCBS int clientCompareKey g_clientCBS_map; typedef struct HelloWorldPtr clientPtr; stdstring clientName; stdstring clientCbAddr;tag_ClientCBS;比较 clientCbAddr 和
根据题目描述,可以使用自定义的比较函数 clientCompareKey 来比较 clientCbAddr 和 clientName 两个字段作为唯一标识。下面是一个可能的实现:
struct clientCompareKey {
bool operator()(const tag_ClientCBS& client1, const tag_ClientCBS& client2) const {
if (client1.clientCbAddr != client2.clientCbAddr) {
return client1.clientCbAddr < client2.clientCbAddr;
}
return client1.clientName < client2.clientName;
}
};
然后,可以使用这个自定义的比较函数作为 std::map 的第三个模板参数,来创建一个以 tag_ClientCBS 作为键的有序映射:
static std::map<tag_ClientCBS, int, clientCompareKey> g_clientCBS_map;
这样,g_clientCBS_map 就是一个以 tag_ClientCBS 作为键的有序映射,使用 clientCompareKey 来比较键的唯一性。
原文地址: https://www.cveoy.top/t/topic/jdfY 著作权归作者所有。请勿转载和采集!