在C++中,可以使用std::map来实现一个key为结构体,value为int的映射关系。下面是实现增、删、查的示例代码:

#include <iostream>
#include <map>

struct MyStruct {
    int x;
    int y;
    // 添加其他成员变量和方法
};

// 重载小于运算符,用于结构体的比较
bool operator<(const MyStruct& lhs, const MyStruct& rhs) {
    if (lhs.x < rhs.x)
        return true;
    else if (lhs.x == rhs.x && lhs.y < rhs.y)
        return true;
    return false;
}

int main() {
    std::map<MyStruct, int> myMap;

    // 添加元素
    MyStruct key1{1, 2};
    myMap[key1] = 10;

    MyStruct key2{3, 4};
    myMap[key2] = 20;

    // 删除元素
    myMap.erase(key1);

    // 查找元素
    auto it = myMap.find(key2);
    if (it != myMap.end()) {
        std::cout << "Value found: " << it->second << std::endl;
    } else {
        std::cout << "Value not found" << std::endl;
    }

    return 0;
}

在上述代码中,我们首先定义了一个结构体MyStruct,并重载了小于运算符<,以便在std::map中进行比较。然后,我们创建了一个std::map对象myMap,其中key为MyStruct类型,value为int类型。

接下来,我们可以使用myMap[key]的方式来增加或修改元素。例如,myMap[key1] = 10表示将key110关联起来。

使用myMap.erase(key)可以删除指定的key对应的元素。在示例代码中,我们删除了key1对应的元素。

使用myMap.find(key)可以查找指定的key对应的元素。如果找到了,返回一个指向该元素的迭代器;如果没有找到,返回myMap.end()。在示例代码中,我们查找了key2对应的元素,并输出其value值。

c++ map 的key是结构体value 是int 怎么实现增、删查

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

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