c++ map operator[] 陷阱

news2024/9/22 1:13:05

        背景:以前做的一个功能,在程序中保存了一个map,这个map的类型是这样的: std::map<int, std::set<自定义类型>>,一般情况下这个 set 只有一个元素,特殊情况是允许set有两个元素。现在是项目测试发现一个问题,似乎跟这个功能有关,底层说可能是我们这个上层的问题,于是开始自测。之前写过一篇 map operator[] 的文章,这里

如下这是一个特殊情况下的map,这个 set 里就有 2 个元素:

怀疑点是在删除元素时没有从 map 删掉,所以只能从 gdb 里看这个 map 信息了,然后我操作删除所有元素,再查看一下这个 map 的情况,如:

因为我知道 map 的 key,所以我就直接输入 xx_mset[80041],看结果这个 set 里是没有元素的,然后我又想直接打印整个 map,输入p xx_mset,结果吓我一跳,因为还有一个元素在呢,怎么没有删除掉呢?我还去把代码看了一遍,搞不好还是一个 bug 呢.......结果看代码也没发现问题啊,然后又重新来一遍,gdb 打断点一步步看,结果删除是正常的啊,怎么还有一个没有删除呢?如果真的是这样会有问题的,当时真的以为是一个bug,只是目前没有发现而已。

        最后发现是 key 不一样,原来 map 里的是 800041,而我输入的是 80041,删除后 map 里的 800041 确实都删除掉了,是正常的,而多出来的 这个_M_s = std::map with 1 element = {
    [80041] = std::set with 0 elements

是因为 p xx_mset[80041] (本意是要打印 map 的一个元素的)这一句导致新插入了一个元素, 真是吓一跳。

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

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

相关文章

线程间通信与变量修改感知:几种常用方法

线程间通信与变量修改感知&#xff1a;几种常用方法 1. 使用volatile关键字2. 使用synchronized关键字3. 使用wait/notify/notifyAll机制4. 使用轮询&#xff08;Polling&#xff09; &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Java…

入选中国信通院首期全景图,美创数据安全再显“专、精、全”

近日&#xff0c;中国信息通信研究院&#xff08;简称“中国信通院”&#xff09;正式发布《数字安全护航技术能力全景图》&#xff0c;共划分为14项一级目录103项二级目录&#xff0c;从391家报名厂商中审核评估&#xff0c;共收录147家厂商。 美创科技入选21个细分领域&#…

unity3d脚本使用start,updata,awake

最近学了一下unity&#xff0c;脚本编写用的c#&#xff0c;虽说没学过c#但是勉强根据教学还能写点代码。 在这里我来记录一下在我学习过程中感觉最重要的东西 消息函数&#xff1a; 在我们创建一个脚本文件的时候&#xff0c;我们首先可以看到两个默认给你写出来的函数。 这两…

数据结构——单链表与双链表(java实现)

文章目录 前言链表&#xff1a;链表分类&#xff1a; 一 单链表单链表的实现&#xff1a;节点的实现头插法&#xff1a;尾插法在任意位置插入数据&#xff1a;查找单链表中是否有key关键字&#xff08;即是否有值为key的数据&#xff09;删除第一次出现的关键字为key的节点删除…

深度解析:如何优雅地删除GitHub仓库中的特定commit历史

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

2024.7.15 csp-j第一场模拟赛赛后总结

题目&#xff1a; T1&#xff1a;P1211 [USACO1.3] 牛式 Prime Cryptarithmhttps://www.luogu.com.cn/problem/P1211 T2&#xff1a;P2035 [USACO08JAN] iCow Bhttps://www.luogu.com.cn/problem/P2035 T3&#xff1a;P6207 [USACO06OCT] Cows on Skates Ghttps://www.luogu…

CUDA cuDNN和pytorch(GPU版)的完整安装教程

​ * 说明: 本教程使用wsl-ubuntu20.04, 其他发行版linux的命令可能有所区别. *实测机型: i5-13500HX | RTX 4060 Laptop 一、下载CUDA12.X版本 这里以下载CUDA12.2为例。 前往cuda-12.2下载页, 按照如图方式选择合适的选项&#xff1a; 按照官方给出的命令&#xff0c; 在b…

《昇思25天学习打卡营第22天|基于MindSpore的GPT2文本摘要》

#学习打卡第22天# 1. 数据集 1.1 数据下载 使用nlpcc2017摘要数据&#xff0c;内容为新闻正文及其摘要&#xff0c;总计50000个样本。 from mindnlp.utils import http_get from mindspore.dataset import TextFileDataset# download dataset url https://download.mindspor…

leetcode-349.两个数组的交集

题源 349.两个数组的交集 题目描述 给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的 交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1&#xff1a; 输入&#xff1a;nums1 [1,2,2,1], nums2 [2,2] 输出&#xff1a;[2] 示例…

深度解读昇腾CANN模型下沉技术,提升模型调度性能

AI模型的运行通常情况下需要CPU和NPU&#xff08;昇腾AI处理器&#xff09;等AI专用处理器协同工作&#xff0c;CPU所在位置称为主机端&#xff08;Host&#xff09;&#xff0c;而NPU所在位置称为设备端&#xff08;Device&#xff09;。对于采用Host调度的AI模型来说&#xf…

金蝶云星空与金蝶云星空对接集成付款单查询打通[标准][付款单新增]-v1

金蝶云星空与金蝶云星空对接集成付款单查询打通[标准][付款单新增]-v1 对接源平台:金蝶云星空 金蝶K/3Cloud在总结百万家客户管理最佳实践的基础上&#xff0c;提供了标准的管理模式&#xff1b;通过标准的业务架构&#xff1a;多会计准则、多币别、多地点、多组织、多税制应用…

vitest 单元测试应用与配置

vitest 应用与配置 一、简介 Vitest 旨在将自己定位为 Vite 项目的首选测试框架&#xff0c;即使对于不使用 Vite 的项目也是一个可靠的替代方案。它本身也兼容一些Jest的API用法。 二、安装vitest // npm npm install -D vitest // yarn yarn add -D vitest // pnpm pnpm …

CoT-SC论文速读

1.论文速读 本文提出了一个重要的Decoder策略为&#xff1a;“Self-Consistency”,并将其用在CoT的Prompt工作中。 该策略作用&#xff1a;让LLM在处理复杂问题时&#xff0c;让他尝试多个推理路径&#xff0c;每一个推理路径都是一次CoT&#xff08;Chain of Thought&#x…

构建实用的NLP应用程序:重塑人类与计算机的协同工作方式

文章目录 一、NLP技术的核心价值二、构建实用NLP应用程序的关键步骤三、NLP应用程序在协同工作中的创新应用《赠ChatGPT中文范例的自然语言处理入门书》编辑推荐内容简介作者简介精彩书评目录前言/序言获取方式 在数字化时代&#xff0c;自然语言处理&#xff08;NLP&#xff0…

哥德巴赫猜想c++

方法一 #include<bits/stdc.h> using namespace std; //定义函数&#xff0c;判断素数 bool sushu(int n){bool rtrue;//先假设是素数&#xff0c;即真//循环因子范围&#xff0c;找到一个因子就不是素数for(int i2;i<sqrt(n);i){//判断2~n的根号是否素数if(n%i0){//…

码住!热门且创新idea:GNN+强化学习!

如何提高学习效率、优化策略&#xff0c;并解决复杂的图结构相关问题&#xff1f;或许你可以考虑&#xff1a;GNN强化学习。 GNN结合强化学习是当前的热门创新方向&#xff0c;它通过利用GNN在图形数据上的强大表示能力与强化学习在决策制定中的优势&#xff0c;不仅能够有效处…

鸿蒙语言基础类库:【@ohos.uitest (UiTest)】 测试

UiTest UiTest提供模拟UI操作的能力&#xff0c;供开发者在测试场景使用&#xff0c;主要支持如点击、双击、长按、滑动等UI操作能力。 该模块提供以下功能&#xff1a; [By]&#xff1a;提供控件特征描述能力&#xff0c;用于控件筛选匹配查找。[UiComponent]&#xff1a;代…

中电金信:成功的智慧运营转型,重点是把握“一个基本点和两大主线”

“运营”是银行不可或缺的基础职能&#xff0c;负责产品的服务交付过程和业务的落地处理&#xff0c;解决商业模式下“怎么做”的问题。纵观全球领先银行的运营转型历程&#xff0c;已从传统分散运营逐步转向集中运营、共享运营&#xff0c;乃至价值创造。从国内银行运营转型发…

微信小程序毕业设计-青少年科普教学系统项目开发实战(附源码+论文)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;微信小程序毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计…

基于SpringBoot协同过滤算法商品推荐系统(源码+lw+部署文档+讲解等)

前言&#xff1a; 博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围&#xff1a;SpringBo…