以下是使用C++98实现的插入、删除、查找和遍历的示例代码:

#include <iostream>
#include <map>
#include <string>

typedef struct 
{
    std::string   clientName;
    std::string   clientCbAddr;
} tag_ClientCBS;

struct CompareStruct
{
    bool operator()(const tag_ClientCBS& lhs, const tag_ClientCBS& rhs) const
    {
        if(lhs.clientName == rhs.clientName && lhs.clientCbAddr == rhs.clientCbAddr)
            return false;
        else if(lhs.clientName < rhs.clientName)
            return true;
        else if(lhs.clientName == rhs.clientName && lhs.clientCbAddr < rhs.clientCbAddr)
            return true;
        else
            return false;
    }
};

int main()
{
    std::map<tag_ClientCBS, int, CompareStruct> clientMap;

    // 插入元素
    tag_ClientCBS client1;
    client1.clientName = "Alice";
    client1.clientCbAddr = "Address1";
    clientMap[client1] = 1;

    tag_ClientCBS client2;
    client2.clientName = "Bob";
    client2.clientCbAddr = "Address2";
    clientMap[client2] = 2;

    // 删除元素
    clientMap.erase(client2);

    // 查找元素
    tag_ClientCBS client3;
    client3.clientName = "Alice";
    client3.clientCbAddr = "Address1";
    std::map<tag_ClientCBS, int, CompareStruct>::iterator it = clientMap.find(client3);
    if(it != clientMap.end())
    {
        std::cout << "Found: " << it->second << std::endl;
    }
    else
    {
        std::cout << "Not found" << std::endl;
    }

    // 遍历元素
    for(it = clientMap.begin(); it != clientMap.end(); ++it)
    {
        std::cout << it->first.clientName << " " << it->first.clientCbAddr << " " << it->second << std::endl;
    }

    return 0;
}

在这个示例中,我们定义了一个tag_ClientCBS结构体作为std::map的键,值为int。为了在std::map中使用自定义结构体作为键,我们还定义了一个CompareStruct结构体,用于比较两个tag_ClientCBS对象的大小关系。

在主函数中,我们创建了一个名为clientMapstd::map对象,并使用client1client2作为键插入了两个元素。然后,我们使用client2作为键从clientMap中删除了一个元素。

接下来,我们创建了一个名为client3tag_ClientCBS对象,并使用它在clientMap中查找元素。如果找到了相应的元素,则输出其值;否则,输出"Not found"。

最后,我们使用迭代器遍历了clientMap中的所有元素,并将键和值打印到标准输出。

typedef struct stdstring clientName; stdstring clientCbAddr;tag_ClientCBS; linux c++ map的key使用这个作为结构体值为int实现插入删除查找遍历 使用c++98实现给出实现

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

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