typedef struct stdstring clientName; stdstring clientCbAddr;tag_ClientCBS; linux c++ map的key使用这个作为结构体值为int实现插入删除查找 使用c++98实现给出实现
以下是使用C++98实现的插入、删除和查找功能的示例代码:
#include <iostream>
#include <map>
#include <string>
typedef struct
{
std::string clientName;
std::string clientCbAddr;
} tag_ClientCBS;
struct CompareClientCBS
{
bool operator()(const tag_ClientCBS& c1, const tag_ClientCBS& c2) const
{
if (c1.clientName == c2.clientName)
return c1.clientCbAddr < c2.clientCbAddr;
return c1.clientName < c2.clientName;
}
};
int main()
{
std::map<tag_ClientCBS, int, CompareClientCBS> clientMap;
// 插入元素
tag_ClientCBS client1;
client1.clientName = "Client1";
client1.clientCbAddr = "Address1";
clientMap[client1] = 1;
tag_ClientCBS client2;
client2.clientName = "Client2";
client2.clientCbAddr = "Address2";
clientMap[client2] = 2;
tag_ClientCBS client3;
client3.clientName = "Client3";
client3.clientCbAddr = "Address3";
clientMap[client3] = 3;
// 删除元素
clientMap.erase(client2);
// 查找元素
tag_ClientCBS client4;
client4.clientName = "Client1";
client4.clientCbAddr = "Address1";
std::map<tag_ClientCBS, int>::iterator it = clientMap.find(client4);
if (it != clientMap.end())
{
std::cout << "Value: " << it->second << std::endl;
}
else
{
std::cout << "Element not found" << std::endl;
}
return 0;
}
这段代码创建了一个std::map,其中键为tag_ClientCBS结构体,值为int。为了使用结构体作为键,我们定义了一个CompareClientCBS结构体来比较两个结构体的顺序。
然后,我们插入了几个元素,使用结构体作为键,并将一个整数值与之关联。接下来,我们删除了一个元素,并尝试查找另一个元素。如果找到了元素,我们将打印与之关联的值,否则打印"Element not found"。
原文地址: https://www.cveoy.top/t/topic/jdip 著作权归作者所有。请勿转载和采集!