c++ map 的key是结构体 typedef struct data unsigned int run_time; HelloWorldPtr clientPtr; stdstring clientName; stdstring clientCbAddr; tag_ClientCBS;value 是int 怎么实现增、删查
要实现C++ map中的增加、删除和查找操作,可以按照以下步骤进行:
- 定义一个map对象,指定key类型为tag_ClientCBS,value类型为int:
std::map<tag_ClientCBS, int> myMap;
- 增加操作:
tag_ClientCBS key; // 定义一个结构体对象作为key
int value; // 定义一个int作为value
// 设置key和value的值
key.run_time = 123;
key.clientPtr = someHelloWorldPtr;
key.clientName = "someClientName";
key.clientCbAddr = "someClientCbAddr";
value = 456;
// 使用insert函数将key-value对插入map中
myMap.insert(std::make_pair(key, value));
- 删除操作:
tag_ClientCBS keyToDelete; // 定义一个结构体对象作为要删除的key
// 设置要删除的key的值
keyToDelete.run_time = 123;
keyToDelete.clientPtr = someHelloWorldPtr;
keyToDelete.clientName = "someClientName";
keyToDelete.clientCbAddr = "someClientCbAddr";
// 使用erase函数删除指定的key
myMap.erase(keyToDelete);
- 查找操作:
tag_ClientCBS keyToFind; // 定义一个结构体对象作为要查找的key
// 设置要查找的key的值
keyToFind.run_time = 123;
keyToFind.clientPtr = someHelloWorldPtr;
keyToFind.clientName = "someClientName";
keyToFind.clientCbAddr = "someClientCbAddr";
// 使用find函数查找指定的key
std::map<tag_ClientCBS, int>::iterator it = myMap.find(keyToFind);
// 判断是否找到了指定的key
if (it != myMap.end()) {
// 找到了,可以通过it->second获取对应的value
int foundValue = it->second;
} else {
// 没有找到
}
注意:在进行查找操作时,需要使用迭代器来获取找到的key-value对。
原文地址: http://www.cveoy.top/t/topic/i1YJ 著作权归作者所有。请勿转载和采集!