具有任意类型值的 C++ 关联数组

2023-11-25

在 C++ 中为每个键创建具有任意值类型的关联数组的最佳方法是什么?

目前我的计划是创建一个“值”类,其中包含我期望类型的成员变量。例如:

class Value {

    int iValue;
    Value(int v) { iValue = v; }

    std::string sValue;
    Value(std::string v) { sValue = v; }

    SomeClass *cValue;
    Value(SomeClass *v) { cValue = c; }

};

std::map<std::string, Value> table;

这样做的一个缺点是您在访问“值”时必须知道类型。 IE。:

table["something"] = Value(5);
SomeClass *s = table["something"].cValue;  // broken pointer

另外,Value 中放入的类型越多,数组就会变得越臃肿。

还有更好的建议吗?


增强::变体看起来正是您正在寻找的。

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

具有任意类型值的 C++ 关联数组 的相关文章

随机推荐

  • 从网站打开新的 Outlook,mailTo 链接太长,*.eml 文件密件抄送字段未加载

    我正在尝试打开一个 eml使用 Microsoft Outlook 2010 文件并遇到问题bcc field 这是我的eml file To email protected Subject Mail Subject cc email pr
  • 如何向soapVars添加属性

    我想创建具有如下属性的soapVars
  • Firebase/Android - 定期丢失数据库连接

    我遵循了 Firebase 身份验证和数据库的文档 全新安装后一切正常 用户可以注册或登录 数据按应有的方式检索 按应有的方式写入 超快 超干净 耶 然后 通过 android Studio 重新启动几次后 数据库的东西就不再工作了 重新启
  • 即使线程中的方法已返回,为什么 Thread.Join() 仍会挂起?

    我有一个 WPF 应用程序 它使用一些库代码进行身份验证 需要在单线程单元线程中运行 我的方法是生成一个单独的线程来获取身份验证对象 阻塞直到线程返回 然后继续执行 然而 在some即使线程方法已返回 我的应用程序也会挂在 Thread J
  • 在docker中更改JAVA_HOME

    我想要 dockerise 的遗留 Web 应用程序使用一些旧的类 例如com sun image codec jpeg ImageFormatExceptionJava SE7 之前都支持 现在在 docker 容器中默认的 jdk 获取
  • 如何在 R 中重用管道运算符长链的部分?

    我有一组管道操作员链 gt 用不同的数据集做不同的事情 例如 dataset gt mutate gt filter gt rowwise gt summarise gt etc 如果我想重用这些链的某些部分 有没有办法做到这一点 而不仅仅
  • 线程忽略键盘中断异常

    我正在运行这个简单的代码 import threading time class reqthread threading Thread def run self for i in range 0 10 time sleep 1 print
  • 使用 IronPython 访问 Pandas 库

    我的目标是将 Python 连接到 NET 以实现流程 我正在使用 IronPython Python 部分涉及一些计算 我使用 Pandas 库 有没有办法连接 IronPython 和 Pandas 我发现使用 IronPython 我
  • 在 Swift 中对 PDF 进行注释/绘图

    我正在编写一个应用程序 其中包含多个 PDF 文档 我将根据用户的输入在屏幕上显示这些文档 显示后 我希望允许用户在 PDF 上绘图 注释 然后我想保存带有绘图 注释的 PDF 以供以后使用 我一直在无休止地搜索有关 PDF 注释的教程 但
  • 文本提取 - 逐行

    我正在使用 Google Vision API 主要是为了提取文本 我工作得很好 但对于我需要 API 扫描输入行的特定情况 在移动到下一行之前吐出文本 然而 该 API 似乎正在使用某种逻辑 使其从左侧从上到下扫描 然后移动到右侧并进行从
  • NGINX:如何在一台服务器或域名中设置多个端口?

    我是 Nginx 新手 我的设置遇到问题 我希望我的服务器在公共上使用多个端口运行 例如 server listen 443 ssl server name
  • D 中异常处理的开销

    在 D2 编程语言中 使用异常处理对性能有何影响 尤其 如果我不写异常处理代码怎么办 如果我这样做了 但没有抛出任何异常怎么办 如果我这样做并且抛出异常怎么办 异常处理是否会导致错过任何优化机会 是否可以像许多 大多数 C 实现中那样禁用异
  • 无法在“ApplicationUser”上配置密钥,因为它是派生类型,但 ApplicationUser 上没有密钥配置

    我正在尝试使用 ApplicationUser 自定义 IdentityUser 我按照微软文章中的步骤操作 但是当我运行应用程序时 我在方法上收到此错误base OnModelCreating modelBuilder System In
  • ES6 对象中的方法:使用箭头函数

    在 ES6 中 这两个都是合法的 var chopper owner Zed getOwner function return this owner 并且 作为简写 var chopper owner Zed getOwner return
  • 如何使用 mongo Java 驱动程序 3.0+ 检查文档是否存在于集合中

    使用新的3 0 java驱动程序来自 mongo 检查文档是否存在于集合中的最佳方法是什么 我看过here并尝试做类似的事情 我只做到了这一点 FindIterable
  • 如何仅删除字符串中的 html 标签?

    我已经编写了删除 HTML 标签的代码 但它也删除了a
  • 除了日志记录和事务管理之外,AOP 还有哪些实际应用?

    我理解这些原理 但我很难看出实际应用在哪些地方 请赐教 询问任何支持人员 日志记录是notAOP的一个很好的应用 他们不关心应用程序内部调用什么方法 他们关心应用程序正在执行的重要操作 并需要以他们理解的方式呈现该信息 要创建像样的日志 您
  • 3DSv2 Sagepay 直接集成基础知识

    协议 4 00 的文档可能会更有帮助 对于每个努力让 3DSV2 工作的人来说 我希望任何已经设法让 3DSV2 工作的人能够详细阐述基础知识 我将根据我的理解总结流程 请大家帮忙纠正必要的地方并添加任何问题 例如从 VPSTx Id 中删
  • 如何在 pyspark pandas_udf 中记录/打印消息?

    我已经测试过logger and print无法打印消息pandas udf 无论是在集群模式还是客户端模式 测试代码 import sys import numpy as np import pandas as pd from pyspa
  • 具有任意类型值的 C++ 关联数组

    在 C 中为每个键创建具有任意值类型的关联数组的最佳方法是什么 目前我的计划是创建一个 值 类 其中包含我期望类型的成员变量 例如 class Value int iValue Value int v iValue v std string