C++之std::unordered_map<int, int, string>应用实例(一百八十)

news2024/11/24 4:56:46

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:C++之std::unordered_map<int, int, string>应用实例。

C++中的std::unordered_map是一个关联容器,用于存储键值对,其中键(key)和值(value)可以是任意类型。std::unordered_map的作用是提供在常数时间复杂度内查找、插入和删除键值对的能力。

2.应用实例

v1.0

#include <iostream>
#include <unordered_map>
#include <string>

int main() {
    // 创建一个unordered_map
    std::unordered_map<int, std::string> myMap;

    // 向unordered_map中插入键值对
    myMap.insert({1, "apple"});
    myMap.insert({2, "banana"});
    myMap.insert({3, "orange"});

    // 查找键为2的值
    auto it = myMap.find(2);
    if (it != myMap.end()) {
        std::cout << "Key: " << it->first << ", Value: " << it->second << std::endl;
    } else {
        std::cout << "Key not found!" << std::endl;
    }

    // 遍历unordered_map
    for (auto& pair : myMap) {
        std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
    }

    // 删除键为1的键值对
    myMap.erase(1);

    // 输出剩余的键值对
    for (auto& pair : myMap) {
        std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
    }

    return 0;
}

v2.0

#include <iostream>
#include <unordered_map>

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

    // 插入键值对
    map[1] = 10;
    map[2] = 20;
    map[3] = 30;

    // 访问键值对
    std::cout << "Value at key 2: " << map[2] << std::endl;

    // 修改键值对
    map[2] = 50;
    std::cout << "Modified value at key 2: " << map[2] << std::endl;

    // 检查键是否存在
    if (map.find(3) != map.end()) {
        std::cout << "Key 3 found!" << std::endl;
    }

    // 删除键值对
    map.erase(1);

    // 遍历键值对
    std::cout << "All key-value pairs: " << std::endl;
    for (const auto& pair : map) {
        std::cout << "Key: " << pair.first << ", Value: " << pair.second << std::endl;
    }

    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/893279.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小程序化,一种创新的HybirdApp开发模式

跨端框架的出现&#xff0c;弥补了传统移动应用开发中跨平台难题。开发者可以使用一套代码构建适用于多个平台的应用&#xff0c;既能在不同设备上保持一致的用户体验&#xff0c;又能更高效地进行开发和维护。这种开发模式不仅提升了开发效率&#xff0c;还为用户提供了更加一…

【K8S系列】Weave Net 故障排除的常见问题和解决方案

写在前面 当使用 Weave Net 进行容器网络配置时&#xff0c;可能会遇到一些常见的故障情况。以下是一些常见问题及其解决方案&#xff1a; 问题列表 1 节点无法加入 Weave Net 网络 解决方案 检查节点之间的网络连通性&#xff0c;确保可以通过 IP 地址相互访问。 检查节点的…

nodejs安装与卸载(高版本降为低版本)

初到公司发现电脑上面已经安装nodejs&#xff0c;但是版本是最新版本。但是问题来了&#xff0c;好像是不太支持vue3&#xff0c;所以查了一些资料&#xff0c;具体的也不是很清楚&#xff0c;反正就是nodejs的版本不能太高最好保持在16以下。好吧&#xff0c;那就重新卸载再来…

苹果手机怎么连接电脑?4招轻松连接!

“新买了一部苹果手机&#xff0c;想连接电脑传一些文件&#xff0c;但是不知道该如何操作。有没有朋友可以帮帮我呀&#xff1f;” 苹果手机作为一款智能手机&#xff0c;在市场上的应用越来越常见。苹果手机与电脑进行连接可以更好的进行文件的传输、备份以及进行其他操作。 …

FreeModbus——源码获取(一)

网站 About - Embedded Experts (embedded-experts.at) 下载v1.6版本&#xff0c;刚开始我还没找到&#xff0c;后面对照别人的截图才找到&#xff08;哈哈&#xff0c;感觉自己好二&#xff09;&#xff0c;把鼠标移过去&#xff0c;这个地方是才从黑变成这个绿色

基于X86六轮差速移动机器人运动控制器设计与实现(二)规划控制算法

带输入约束的 MPC 路径跟踪控制 MPC 算法是一种基于控制对象模型的控制方法&#xff0c;其优势在于在控制中考虑了 系统的多种物理约束&#xff0c;同时基于模型与当前机器人的反馈信息预估出未来机器人 位姿信息的处理方法可以解决控制迟滞的问题。 4.1 MPC 路径跟踪控…

压多少抗多少,滴滴全链路压测仿真度量体系建设

滴滴在重大节假日、活动前为保障线上系统稳定&#xff0c;需要通过全链路压测做多轮风险排查以及容量验收&#xff0c;我们经常听到这样的声音"你们全链路压测和线上业务场景有多大差异"、"是不是压测达到目标线上真的能抗这么大量"、"我的某某个模块…

iPhone15即将发布,苹果赔偿5亿美元,但再次不包括中国用户

苹果的iPhone15即将发布&#xff0c;就在此时苹果的“电池门”再次被翻出&#xff0c;这次美国的法院判决苹果给每名用户赔偿65美元&#xff0c;合计大约5亿美元&#xff0c;只是独独不包括中国用户&#xff0c;这就有点歧视中国用户了吧&#xff1f; 事件的起因在于2017年很多…

c++11 标准模板(STL)(std::basic_stringbuf)(六)

定义于头文件 <sstream> template< class CharT, class Traits std::char_traits<CharT>, class Allocator std::allocator<CharT> > class basic_stringbuf : public std::basic_streambuf<CharT, Traits> std::basic_stringbu…

C++新经典02--编译预处理

编译预处理 编译阶段会做如下几件事&#xff1a; (1)预处理。 (2)编译。包括词法分析、语法分析、目标代码生成、优化等。 (3)汇编。产生.o(.obj)目标文件。 C语言一般提供三种预处理功能&#xff1a;宏定义、 文件包含、条件编译。这三种预处理功能也是通过在源程序文件写入…

5G智能网关助力打造数字乡村物联网

乡村振兴&#xff0c;网络先行&#xff0c;信息通信技术赋能农业农村现代化发展的作用日益彰显&#xff0c;也成为实施乡村振兴战略的重要力量。 截止今年三月&#xff0c;我国5G网络已经覆盖全国所有地级市、县城城区及数万行政村&#xff0c;农村光纤平均下载速率超过100Mb/s…

C#之枚举中的按位与()按位或(|)。

一些基础定义&#xff1a; 按位或运算符&#xff08;|&#xff09;是一种位运算符&#xff0c;用来对两个二进制数进行操作。对于每个位上的1&#xff0c;如果至少有一个二进制数中的对应位为1&#xff0c;则结果为1&#xff1b;否则&#xff0c;结果为0。按位与运算符&#x…

秒懂算法 | 汉诺塔问题与木棒三角形

在数学与计算机科学中&#xff0c;递归(recursion)是指一个过程或函数在其定义或说明中又直接或间接调用自身的一种方法。它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算&#x…

JAVA权限管理 助力企业精细化运营

在企业的日常经营中&#xff0c;企业人数达到一定数量之后&#xff0c;就需要对企业的层级和部门进行细分&#xff0c;建立企业的树形组织架构。围绕着树形组织架构&#xff0c;企业能够将权限落实到个人&#xff0c;避免企业内部出现管理混乱等情况。权限管理是每个企业管理中…

【3Ds Max】弯曲命令的简单使用

简介 在3ds Max中&#xff0c;"弯曲"&#xff08;Bend&#xff09;是一种用于在平面或曲面上创建弯曲效果的建模命令。使用弯曲命令&#xff0c;您可以将对象沿特定轴向弯曲&#xff0c;从而创建出各种弯曲的几何形状。以下是使用3ds Max中的弯曲命令的基本步骤&…

多数据源项目serviceImpl中使用了@PostConstruct注解导致项目启动时报“表不存在”的解决办法

背景&#xff1a; 原多数据源项目一直运行好好的&#xff0c;这两天开发定时任务调度功能&#xff0c;开发完了调用定时任务一直提示找不到定时任务&#xff0c;调查半天发现没有提前把表中定义的定时任务加载到ScheduleJob&#xff0c;也就是需要执行以下操作&#xff1a; Pos…

获取屏幕共享视频流

文章目录 1.增加 html 的一行代码2. 在 static 目录下创建 js 文件夹&#xff0c;并在 js 文件夹下面创建 screen_share.js 文件3. 访问 htpps 的网址3.1 点击开始推流3.2 选择要分享的窗口3.3 停止推流 1.增加 html 的一行代码 <script src"/static/js/screen_share.…

不会吧,小红书竟然也偷用户作品训练自家AI模型?

图片来源&#xff1a;由无界AI生成 “画手在小红书发的图是可以随意被拿去炼的吗&#xff1f;” 最近一个月&#xff0c;有关“小红书偷用户作品炼自家AI模型”的话题不断发酵&#xff0c;用户在小红书以及其他社交平台发起抵制行动。一部分画师停止在小红书更新作品&#xff0…

安装nodejs

1.下载nodejs的压缩包 https://nodejs.org/download/release/latest-v16.x/ 这个是v16版本的&#xff0c;可以根据自己需求下载对应的版本&#xff1a; https://nodejs.org/download/release/ 2.解压&#xff0c;将nodejs放到固定的路径下 注意&#xff1a;不要包含中文路径 3.…

「隐语小课」拆分学习之“水平拆分学习”

一、引言 拆分学习是 2018 年由 MIT 最先提出的分布式算法。本文结合该领域的相关英文文献&#xff0c;介绍水平拆分学习的基本方法&#xff0c;同时还将对比拆分模型与中心化模型、联邦模型在不同条件下模型效率和准确性。拆分学习作为主流的隐私计算学习范式之一&#xff0c…