STL:map

2023-11-04

#首先包含头文件:

#include <map>

using namespacestd;//需要使用该命名空间

 

#然后定义对象:

map<int,CString>m_student;//int为学号,CString为姓名

map中包含两个值,即<key,value>key是指关键字,用于索引;value是指所求的值。

其中,key是唯一的,在同一个map对象中不可能出现两个key值相同的记录

 

#向对象中添加数据:

m_student[0711712034] = 化石鱼;

注意map对象是不需要事先分配空间的。直接用m_student[key] =value的形式即可为map对象添加一条索引记录。

注意若不给定初值,则会使用默认初值为map对象赋值。因此查找需要使用count()find(),而不要使用[]来查找。例如要查找一个学号为1234567890的学生姓名,但map中并没有该学号,如果直接使用CStringname = m_student[1234567890],会使用默认初值NULL作为学号1234567890的对应值,并将(1234567890,NULL)作为一条新纪录添加进来。

 

#然后可以像数组一样使用该对象的数据:

CString name = m_student[0711712034];

 

#获取第一个元素:(序列允许为空。若序列为空,则指向序列末端的下一个位置)。注意这里返回的并非是value,而是一个iterator

m_student.begin();

 

#获取最后一个元素:(序列不允许为空)。注意这里返回的并非是value,而是一个iterator

m_student.back();

 

#获取最后一个元素的下一个位置:(序列是否为空无影响)。注意这里返回的并非是value,而是一个iterator

m_student.end();

 

#判断序列是否为空:

m_student.empty();//若为空返回true,否则返回false

 

#判断某个关键字是否存在

m_student.count(key);//若存在返回1,若不存在返回0

返回值只可能是0或1。因为key是唯一的。所以key要么存在要么不存在,不可能存在多个。

 

#查找某个关键字

m_student.find(key);

返回值为迭代器iterator。若没有查找到,则返回m_student.end()

 

#删除某个对象:

m_student.eraser(key);//通过关键字删除

m_student.eraser(iterator);//通过迭代器删除

如:

m_student.eraser(0711712000);

m_student.eraser(m_student.begin());

m_student.eraser(m_student.find(0711712000));

 

#最后在析构函数中清空map对象:

ConvexShell::~ConvexShell(void)

{

     m_student.clear();

}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STL:map 的相关文章

  • 数据模板绑定垃圾邮件输出窗口出现错误:找不到管理 FrameworkElemen

    我有问题 System Windows Data 错误 2 找不到目标元素的管理 FrameworkElement 或 FrameworkContentElement BindingExpression 无路径 数据项 空 目标元素是 So
  • 尚未注册类型“IServiceProviderFactory[Autofac.ContainerBuilder]”的服务

    当运行以下命令添加数据库迁移脚本时 出现以下错误 dotnet ef migrations add InitialCreate v o Migrations context MyContext 访问 Microsoft Extensions
  • 为什么在创建矩阵类时使用向量不好?

    对于我的矩阵类 我做了 template
  • 平滑滚动.net 表单

    您好 我正在 net 中使用表单 并且在运行时动态添加大量链接标签 我将这些链接标签添加到面板并将该面板添加到 winform 当链接标签的数量增加时 表单会显示一个自动滚动条 垂直 现在 当我使用自动滚动向下滚动时 表单在滚动时不会更新其
  • 类特定的新删除运算符是否必须声明为静态

    标准中是否要求类特定的 new new delete 和 delete 是静态的 我可以让它们成为非静态成员运算符吗 为什么需要它们是静态的 它们被隐式声明为静态 即使您没有键入 static
  • 如何在 SqlDataReader.Read() 期间从死锁异常中恢复

    我的 NET 应用程序的事件日志显示 它在从 Sql Server 读取数据时偶尔会出现死锁 这种情况通常非常罕见 因为我们已经优化了查询以避免死锁 但有时仍然会发生 过去 我们在调用ExecuteReader函数在我们的SqlComman
  • 动态生成的控件 ID 返回为 NULL

    我可以在 Page PreInit 函数中创建动态控件 如何检索控件及其 ID 我的 C 代码用于创建动态控件之一 var btn new WebForms Button btn Text btn ID Addmore btn Click
  • 如何在 QTabWidget Qt 中展开选项卡

    我有一个QTabWidget像这个 但我想展开选项卡以 填充 整个小部件宽度 如下所示 我怎样才能做到这一点 我在用Qt 5 3 2 and Qt 创建者 3 2 1 Update 我尝试使用setExpanding功能 ui gt myT
  • 单例模式和 std::unique_ptr

    std unique ptr唯一地控制它指向的对象 因此不使用引用计数 单例确保利用引用计数只能创建一个对象 那么会std unique ptr与单例执行相同 单例确保只有一个实例属于一种类型 A unique ptr确保只有一个智能指针到
  • std::forward_as_tuple 将参数传递给 2 个构造函数

    我想传递多个参数以便在函数内构造两个对象 以同样的方式std pair
  • C# 构建一个 webservice 方法,它接受 POST 方法,如 HttpWebRequest 方法

    我需要一个接受 POST 方法的 Web 服务 访问我的服务器正在使用 POST 方法 它向我发送了一个 xml 我应该用一些 xml 进行响应 另一方面 当我访问他时 我已经使用 HttpWebRequest 类进行了管理 并且工作正常
  • 检查 RoutedEvent 是否有任何处理程序

    我有一个自定义 Button 类 当单击它时 打开特定窗口 它总是执行相同的操作 我添加了一个可以在按钮的 XAML 中分配的 Click 事件 就像常规按钮一样 当它被单击时 我想执行 Click 事件处理程序 如果已分配 否则我想执行默
  • AES 输出是否小于输入?

    我想加密一个字符串并将其嵌入到 URL 中 因此我想确保加密的输出不大于输入 AES 是可行的方法吗 不可能创建任何始终会创建比输入更小的输出的算法 但可以将任何输出反转回输入 如果您允许 不大于输入 那么基本上您只是在谈论同构算法alwa
  • 将标量添加到特征矩阵(向量)

    我刚刚开始使用 Eigen 库 无法理解如何向所有矩阵成员添加标量值 假设我有一个矩阵 Eigen Matrix3Xf mtx Eigen Matrix3Xf Ones 3 4 mtx mtx 1 main cxx 104 13 error
  • .NET Core 中的跨平台文件名处理

    如何处理文件名System IO以跨平台方式运行类以使其在 Windows 和 Linux 上运行 例如 我编写的代码在 Windows 上完美运行 但它不会在 Ubuntu Linux 上创建文件 var tempFilename Dat
  • 跨多个域的 ASP.NET 会话

    是否有合适的 NET 解决方案来在多个域上提供持久服务器会话 即 如果该网站的用户在 www site1 com 下登录 他们也将在 www site2 com 下登录 安全是我们正在开发的程序的一个问题 Thanks 它是否需要在会话中
  • C++ Streambuf 方法可以抛出异常吗?

    我正在尝试找到一种方法来获取读取或写入流的字符数 即使存在错误并且读 写结束时间较短 该方法也是可靠的 我正在做这样的事情 return stream rdbuf gt sputn buffer buffer size 但如果streamb
  • 矩阵到数组 C#

    这将是转换方阵的最有效方法 例如 1 2 3 4 5 6 7 8 9 into 1 2 3 4 5 6 7 8 9 in c 我在做 int array2D new int 1 2 3 4 5 6 7 8 9 int array1D new
  • QFileDialog::getSaveFileName 和默认的 selectedFilter

    我有 getSaveFileName 和一些过滤器 我希望当用户打开 保存 对话框时选择其中之一 Qt 文档说明如下 可以通过将 selectedFilter 设置为所需的值来选择默认过滤器 我尝试以下变体 QString selFilte
  • 使我的 COM 程序集调用异步

    我刚刚 赢得 了在当前工作中维护用 C 编码的遗留库的特权 这个dll 公开使用 Uniface 构建的大型遗留系统的方法 除了调用 COM 对象之外别无选择 充当此遗留系统与另一个系统的 API 之间的链接 在某些情况下 使用 WinFo

随机推荐

  • 【云原生之Docker实战】使用docker部署nginx-proxy-manager-zh反向代理工具

    云原生之Docker实战 使用docker部署nginx proxy manager zh反向代理工具 一 nginx proxy manager zh介绍 1 nginx proxy manager zh简介 2 nginx proxy
  • Git的使用(三)——保存用户名和密码

    通过上两篇我们对Git应该都有了基本的了解了 但是有一个问题对于生性懒惰的程序员 说的是我 来说是非常枯燥无味的 那就是每次的提交都要输入密码 每次都要干重复的事情 这对于程序员来说是最不喜欢干的事情了 重复 所以这次就先把这个问题解决了再
  • 实现两视频叠加时上层剪辑透明部分不遮挡下层内容的两种方案

    前往老猿Python博客 https blog csdn net LaoYuanPython 一 引言 在 moviepy音视频剪辑 使用rotate函数实现视频变换处理以及参数expand取值为True时的花屏问题解决方案 介绍了视频旋转
  • 区块链在新基建中的地位和作用如何体现出来?

    2020年4月17日 我们国务院办公厅在新闻发布会上 公布了一季度GDP的增长情况 是 6 8 这也是我们改革开放以来 首次季度GDP出现下降 而且降幅巨大 当然 这里面有客观因素的存在 就是突然其来的新冠疫情 对于我们一月 二月正常的经济
  • pg 创建分区表 --chatGpt

    问 postgreSql 创建表 addresses id mkey pri addr 其中 id自增且id值会超过上百亿 mkey长度为8且唯一的字符串 pri长度64的字符串 addr长度64的字符串 用散列分区的方式创建 gpt 你可
  • springboot个性化课程推荐系统个性化课程推荐系统毕业设计源码131805

    Springboot个性化课程推荐系统 摘 要 随着计算机技术的发展 特别是计算机网络技术与数据库技术的发展 使用人们的生活与工作方式发生了很大的改观 本课题研究的个性化课程推荐系统 主要功能模块包括学生管理 课程管理 课程分类 课程学习管
  • React项目中请求接口的封装

    封装目录中所包含的文件 Api js ApiIp js ApiURL js ApiIp js文件的作用 这个文件的作用主要是在开发环境和生产环境下调用不同的接口请求地址 生产环境下此文件的作用是动态 的获取浏览器中的地址进行拼装 便可以动态
  • 数据挖掘研究方向、热点以及对大数据研究的认识

    日期 2015 07 07 来源 博客园 作者 chuanting zhang 字体 大中 小 通过上网查询以及看同行对会议的公共认识 数据挖掘领域的顶级会议是KDD ACM SIGKDD Conference on Knowledge D
  • 再记一次挖矿病毒应急响应

    一 事件发生背景 办事处部署的TAR产生挖矿告警 如下图 1 TAR挖矿告警所示 告警显示是售前用来存储文件的服务器 IP 10 33 15 240 中了CoinMiner挖矿病毒 图 1 TAR挖矿告警 二 初步排查判断 通过分析TAR设
  • 最长公共子序列LCS 输出所有LCS

    原博客地址 最长公共子序列LCS 求法 O mn 即输出所有LCS 最长公共子序列LCS 求法 O mn 即输出所有LCS include
  • 【SpringCloud】Stream消息通知使用

    文章目录 概述 标准MQ 配置 POM YML 示例 消息发送 配置RabbitMQ可视化插件 消息消费者 遇到的问题 复现 解决 修改YML 注意 概述 屏蔽底层消息中间件的差异 降低切换成本 统一消息的编程模型 官网 https spr
  • TypeError: 'builtin_function_or_method' object has no attribute '__getitem__'

    谷歌下的翻译是 内置函数或方法对象没有获取项目属性 错误的是在内置的函数中符号写错 例如 range 1 5 写成 range 1 5
  • BaseRecyclerViewAdapterHelper之BaseMultiItemQuickAdapter实现多级列表功能

    这里实现的是一个三级列表效果 可展开和收起 三个实体类ExpandItem Expand1Item和Expand2Item 均要继承AbstractExpandableItem 实现接口MultiItemEntity public clas
  • Spring Cloud介绍

    给你们看看我上课在干啥你就知道我为啥啥都不会了 上课笔记 emmm 字比较丑 我还记得那是一堂英语课 老师不让用电子设备 我只能手写我这篇文章的思路 所以 冒着期末要挂科的风险 我也得把这篇文章写完 给大家分享知识 自己也能重新复习和认识一
  • JVM类的加载机制

    1 类的加载机制 类的加载指的是将类的 class文件中的二进制数据读入到内存中 将其放在运行时数据区的方法区内 然后在堆区创建一个java lang Class对象 用来封装类在方法区内的数据结构 类的加载的最终产品是位于堆区中的Clas
  • 算法分析与设计编程题 贪心算法

    活动安排问题 题目描述 解题代码 vector
  • 线程池以及UDP、socket通信

    目录 线程池 UDP通信 本地socket通信 线程池 什么是线程池 是一个抽象的概念 若干个线程组合到一起 形成线程池 为什么需要线程池 多线程版服务器一个客户端就需要创建一个线程 若客户端太多 显然不太合适 什么时候需要创建线程池呢 简
  • QT (C++)安装5.14

    QT 5 14 安装 介绍 C 版本 据说 这个版本是最后一个提供离线安装包的QT5 例如 qt opensource windows x86 5 14 2 exe 2 4G 最后一个可能是5 14 2 下载方式 1 在https down
  • unity开发VR的项目01——环境配置(unity2020.3)

    使用unity创建一个steam VR项目 首先要进行环境的配置 一 Steam VR插件导入 创建一个unity 3 项目 在 商店 window asset store 中搜索SteamVR Plugin 找到并导入到unity资源 也
  • STL:map

    首先包含头文件 include