能不能使用字符串数组作为map的索引呢?我有下面的一个结构TCameraInfo建立了一个map,想使用m_kdvPuid[MAXKDVPUIDLEN + 1]这个数组作为索引,可以吗? 当然我知道再使用一个容器存放我的puid作为索引可以解决。
#define MAXKDVPUIDLEN 32
#define MAXDEVICENAME 127
typedef struct tagCameraInfo
{
char m_kdvPuid[MAXKDVPUIDLEN + 1]; //设备puid, 目前32位
char m_deviceName[MAXDEVICENAME + 1]; //设备名称
int m_mediaSourceType; //设备媒体类型,目前由宏视定义
int m_vChnl; //编码通道
}TCameraInfo, *PTCameraInfo;
typedef std::map< ?, TCameraInfo> TCameraInfoMap;
typedef std::pair<? , TCameraInfo> CameraInfo_pair;
可以用char*指针作为key。
stl的key的比较算法可以自己写替换的。
如果是自定义的类型做key的话,则必须重载<号操作
或者map<string, ...> ..