要实现 C++ map 中的增加、删除和查找操作,可以按照以下步骤进行:

  1. 定义一个 map 对象,指定 key 类型为 tag_ClientCBS,value 类型为 int:
std::map<tag_ClientCBS, int> myMap;
  1. 增加操作:
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));
  1. 删除操作:
tag_ClientCBS keyToDelete; // 定义一个结构体对象作为要删除的 key

// 设置要删除的 key 的值
keyToDelete.run_time = 123;
keyToDelete.clientPtr = someHelloWorldPtr;
keyToDelete.clientName = 'someClientName';
keyToDelete.clientCbAddr = 'someClientCbAddr';

// 使用 erase 函数删除指定的 key
myMap.erase(keyToDelete);
  1. 查找操作:
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 对。

C++ map 使用结构体作为 Key: 增删查操作详解

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

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