【c++随笔】std::unordered_map

在C++中,std::unordered_map 是一种存储键值对的数据结构,允许我们以常数平均时间复杂度来查找、插入和删除元素。

下面是一个例子,展示了如何查找特定的键,获取对应的值,以及如何遍历整个 std::unordered_map 容器。

假设一个简单的 Cpu 类,以及一个 std::unordered_map 容器 mCpus:

cpp
#include <iostream>  
#include <unordered_map>  
  
class Cpu {  
public:  
    // 假设Cpu类有一些成员变量和方法  
    int cpus;  
    Cpu(int cpus) : cpus(cpus) {}  
  
    // 例如,一个获取投票数的方法  
    int getCpus() const {  
        return cpus;  
    }  
};  
  
int main() {  
    std::unordered_map<int, Cpu> mCpus;  
  
    // 向容器中添加元素  
    mCpus[1] = Cpu(10);  
    mCpu[2] = Cpu(20);   
    mCpu[3] = Cpu(30);   
  
    // 查找特定的键  
    int keyToFind = 2;  
    auto it = mCpus.find(keyToFind);  
    if (it != mCpus.end()) {  
        // 如果找到了键,则输出键和对应的值  
        std::cout << "Found key: " << it->first << ", value: " << it->second.getCpus() << std::endl;  
    } else {  
        std::cout << "Key not found." << std::endl;  
    }  
  
    // 遍历容器  
    for (const auto& pair : mCpus) {  
        // pair.first 是键,pair.second 是值  
        std::cout << "Key: " << pair.first << ", Value: " << pair.second.getCpus() << std::endl;  
    }  
  
    return 0;  
}

在这个例子中,首先创建了一个 std::unordered_map<int, Cpu> 容器 mCpus,并向其中添加了几个元素。然后,使用 find 方法来查找特定的键。如果找到了该键,输出它的键和对应的值;否则,输出“Key not found.”。

接下来,使用for循环遍历整个容器,在循环中,使用 pair.first 访问键,使用 pair.second 访问值,使用 const auto& 来避免不必要的拷贝,并且确保不会修改容器中的元素。

以上,实现了查找容器的键和值,以及遍历整个容器的基本操作。

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值