要将该结构体作为map的key,需要自定义一个比较函数,并在map的声明中指定该比较函数。

首先,定义一个比较函数,用于比较两个tag_ClientCBS结构体是否相等:

struct CompareClientCBS {
    bool operator()(const tag_ClientCBS& cbs1, const tag_ClientCBS& cbs2) const {
        if (cbs1.clientPtr == cbs2.clientPtr &&
            cbs1.clientName == cbs2.clientName &&
            cbs1.clientCbAddr == cbs2.clientCbAddr) {
            return true;
        }
        return false;
    }
};

然后,在map的声明中指定该比较函数作为key的比较方式:

std::map<tag_ClientCBS, ValueType, CompareClientCBS> myMap;

其中,ValueType是你想要存储的值的类型。

typedef struct HelloWorldPtr clientPtr; stdstring clientName; stdstring clientCbAddr;tag_ClientCBS; linux c++ map的key使用这个作为结构体给出实现

原文地址: https://www.cveoy.top/t/topic/jdgn 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录