C++ 计数和映射

2023-12-07

我正在计算每个单词在文本文件中出现的次数。我想避免出现这种情况,因此我会减少我的输入,然后进行计数。我有一个地图数据结构,其中有 string 和 int 来保持计数。现在,当我输出单词及其计数时,我不希望单词为小写,而是希望它保持其原始大小写。因此,为了计算所有单词应该更改为小写,但在输出时它们都应该是原来的大小写。有没有办法仅使用一张地图来实现这一目标?


第三个模板参数std::map是比较器类型。您可以提供自己的比较操作,在您的情况下是不区分大小写的。

struct CaseInsensitive {
  bool operator()(std::string const& left, std::string const& right) const {
    size_t const size = std::min(left.size(), right.size());

    for (size_t i = 0; i != size; ++i) {
      char const lowerLeft = std::tolower(left[i]);
      char const lowerRight = std::tolower(right[i]);

      if (lowerLeft < lowerRight) { return true; }
      if (lowerLeft > lowerRight) { return false; }

      // if equal? continue!
    }

    // same prefix? then we compare the length
    return left.size() < right.size();
  }
};

然后实例化你的地图:

typedef std::map<std::string, unsigned, CaseInsensitive> MyWordCountingMap;

注意:仅保留第一个拼写(这对您来说似乎没问题)

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

C++ 计数和映射 的相关文章

  • 通过 CMIS (dotCMIS) 连接到 SP2010:异常未经授权

    我正在使用 dotCMIS 并且想要简单连接到我的 SP2010 服务器 我尝试用 C 来做到这一点 如下所示http chemistry apache org dotnet getting started with dotcmis htm
  • WCF RIA 服务 - 加载多个实体

    我正在寻找一种模式来解决以下问题 我认为这很常见 我正在使用 WCF RIA 服务在初始加载时将多个实体返回给客户端 我希望两个实体异步加载 以免锁定 UI 并且我想利用 RIA 服务来执行此操作 我的解决方案如下 似乎有效 这种方法会遇到
  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • Asp.NET WebApi 中类似文件名称的路由

    是否可以在 ASP NET Web API 路由配置中添加一条路由 以允许处理看起来有点像文件名的 URL 我尝试添加以下条目WebApiConfig Register 但这不起作用 使用 URIapi foo 0de7ebfa 3a55
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 在 ASP.NET 5 中使用 DI 调用构造函数时解决依赖关系

    Web 上似乎充斥着如何在 ASP NET 5 中使用 DI 的示例 但没有一个示例显示如何调用构造函数并解决依赖关系 以下只是众多案例之一 http social technet microsoft com wiki contents a
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • 转发声明和包含

    在使用库时 无论是我自己的还是外部的 都有很多带有前向声明的类 根据情况 相同的类也包含在内 当我使用某个类时 我需要知道该类使用的某些对象是前向声明的还是 include d 原因是我想知道是否应该包含两个标题还是只包含一个标题 现在我知
  • 如何序列化/反序列化自定义数据集

    我有一个 winforms 应用程序 它使用强类型的自定义数据集来保存数据进行处理 它由数据库中的数据填充 我有一个用户控件 它接受任何自定义数据集并在数据网格中显示内容 这用于测试和调试 为了使控件可重用 我将自定义数据集视为普通的 Sy
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • IEnumreable 动态和 lambda

    我想在 a 上使用 lambda 表达式IEnumerable
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • Android 10 中的 Android 开发者无 IMEI

    由于 Android 非常重视安全性 并试图让新的 Android 版本更加安全 因此开发人员很难跟上新的安全功能并找到旧方法的替代方案来使他们的应用程序与旧功能兼容 这个问题是关于新Android 10中的IMEI 旧方法通过使用以下代码
  • 创建在 Rust 中实现特征的对象向量

    用Java来说 我试图创建一个对象 严格实例 的集合 向量 每个对象都实现一个接口 特征 因此我可以迭代该集合并对所有对象调用一个方法 我已将其缩减为下面的一个示例文件 其中包含我希望能够更轻松地获得答案的所有部分 main rs try
  • 如何通过API检索Google Doc上文档的所有建议接受内容

    正如标题 我设法通过 API 检索 Google Docs 上所有建议接受的内容 我已经提到过它的指导方针 and 几个帖子但在这个平台上却是徒劳的 下面是我目前拥有的片段 请指教 function myFunction var docum
  • 使用 scipy.interpolate 进行样条表示:低振幅、快速振荡函数的插值效果较差

    我需要 以数字方式 计算我尝试使用两者的函数的一阶和二阶导数splrep and UnivariateSpline创建样条曲线以对函数进行插值以获取导数 然而 对于大小为 10 1 或更低的函数 样条表示本身似乎存在固有问题and正在 快速
  • 当使用 WinSCP 选择要上传到 FTP 服务器的文件的掩码与文件不匹配时,SSIS 任务失败

    我正在创建一个 SSIS 包 它使用脚本任务 通过 WinSCP 将文件上传到 FTP 上传工作正常 但是如果没有上传文件 我需要该过程失败 目前它只是循环并成功通过 在 WinSCP 命令文件中编写脚本方面还没有获得任何帮助 option
  • 如何在selenium中查找具有多个类的元素

    我有一个包含 3 个类的元素 我需要用 selenium 找到它
  • 文本转语音(TTS)-Android

    我是android平台的新手 现在我正在努力TTS Text to Speech 如果我在文本区域中输入文本 并且希望在单击 发言 按钮时将其转换为语音 谁能帮我吗 文本转语音功能内置于 Android 1 6 中 这是一个如何执行此操作的
  • 如何获取 TextView 的精确位置(以像素为单位)?

    我有一部 2560 x 1440 像素的智能手机 现在我正在使用这个功能TextView int locationOnScreen new int 2 txtAp GetLocationInWindow locationOnScreen 它
  • 为具有圆角的 UIImageView 创建阴影?

    我正在尝试创建一个ImageView它有圆角和阴影以赋予它一些深度 我能够为UIImageView 但是每当我添加代码以使其具有圆角时 它只有圆角而没有阴影 我有一个IBOutlet named myImage 并且它位于viewDidLo
  • pandas 中的单列

    有没有办法在不影响数据框其余部分的情况下对 pandas 中的单个列进行舍入 gt gt gt print df item value1 value2 0 a 1 12 1 3 1 a 1 50 2 5 2 a 0 10 0 0 3 b 3
  • 在哪里以及如何定义应用程序属性? - JHIpster

    在 Spring Boot 中 可以在 application properties 文件中定义应用程序属性 例如 Rest 的前缀可以定义为 spring data rest basePath api 对于基于 Spring Boot 的
  • 游标如何引用已删除的行?

    当我从 Android 中的 sqlite 数据库查询返回游标时 它似乎包含固定数量的行 无论数据库发生什么情况 这些行都不会改变 例如 如果在光标打开时删除了某些行 我仍然可以引用已删除的行 这很好 但是它是如何工作的呢 一种猜测可能是
  • 哪些 Boost 功能与 C++11 重叠?

    几年前 我把我的 C 技能束之高阁 现在看来 当我再次需要它们时 情况已经发生了变化 我们现在有了 C 11 我的理解是它重叠了许多 Boost 功能 是否有一些总结 这些重叠在哪里 哪些 Boost 库将成为遗产 建议使用哪些 C 11
  • 将 xml 列中的数据插入到临时表中

    我有一个 xml 列 看起来像 SET XMLData
  • ggplot 在 X 轴下方添加跟踪颜色

    我想在 x 轴下方添加一条线 其颜色取决于未绘制的因素 在此示例中 我正在创建一个箱形图 并希望添加一条指示另一个变量的线 以汽车数据集为例 然后实际思考我正在尝试做的事情 ggplot mtcars aes factor cyl mpg
  • 为什么 angular2 多次执行方法?

    我的应用程序结构如下所示 ts export class TodoListComponent get sortedTodos ITodo console log this counter html div class todo item d
  • 在 C# 中将日期时间转换为儒略日期(ToOADate 安全吗?)

    我需要从标准转换公历约会到Julian天数 我在 C 中没有看到任何直接执行此操作的文档 但我发现许多帖子 在谷歌搜索时 建议使用ToOADate 有关的文档ToOADate不建议将此作为儒略日期的有效转换方法 任何人都可以澄清此函数是否能
  • HTML Favicon.ico 不会在 Google Chrome 上显示

    我正在制作一个 HTML 页面 我想要的东西之一是标题旁边出现一个图标 我使用的是 Google Chrome 我看到其他网站上的图标可以正常工作 但我网站上的图标不会显示 该网站位于我桌面上名为 site 的文件夹中 The favico
  • 类型“string[]”上不存在属性“includes”

    收到错误 类型 string 上不存在属性 includes 在node modules ng2 breadcrumb app components breadcrumbService ts中 我正在尝试在 angular2 应用程序中实现
  • C++ 计数和映射

    我正在计算每个单词在文本文件中出现的次数 我想避免出现这种情况 因此我会减少我的输入 然后进行计数 我有一个地图数据结构 其中有 string 和 int 来保持计数 现在 当我输出单词及其计数时 我不希望单词为小写 而是希望它保持其原始大