获取boost property_tree父节点

2023-12-09

我在程序中使用 boost property_tree 。我已经设置了使用自定义路径类型的树。我正在寻找的是获取特定节点的父节点 ID。

这是一个例子:

MetaStorageTree tree;

typedef boost::property_tree::basic_ptree<Framework::CommonClientServer::InterfacePathChain_t, MetaStorageTreeNode*>
    MetaStorageTreeNode_t;
class MetaStorageTree : public MetaStorageTreeNode_t;

MetaStorageTreeNode* node = new MetaStorageTreeNode(1);
MetaStorageTreeNode* node1 = new MetaStorageTreeNode(2);
tree.put(InterfacePathChain_t{0}, node);
tree.put(InterfacePathChain_t{0, 0}, node1);
tree.put(InterfacePathChain_t{0, 1}, node1);
tree.put(InterfacePathChain_t{0, 0, 0}, node);
tree.put(InterfacePathChain_t{0, 1, 0}, node1);
tree.put(InterfacePathChain_t{0, 1, 1}, node);

//InterfacePathChain_t is basically a vector<int>

结果正如预期的那样:

{0}: 1
    {0}: 2
        {0}: 1
    {1}: 2
        {0}: 2
        {1}: 1

我需要的是一种获取节点完整 ID 而不永久存储它的方法。我正在考虑的是一种简单地获取其父节点 id 并将其推到路径前面并依此类推到顶层的方法。但我似乎无法找到在 property_tree 中执行此操作的方法。这可能吗?如果没有,还有其他方法可以计算这种情况下的完整路径吗?

例如对于路径为 {0, 1, 0} 的节点:

  1. ID == 0 => 路径 = {0}
  2. 父级 != NULL => 父级.id == 1 => 路径 = {1, 0}
  3. 父级 != NULL => 父级.id == 0 => 路径 = {0, 1, 0}
  4. 父 == NULL => 结束

你不能。

Boost Ptree 节点是独立的,不知道任何包含的数据结构(它相当于单链表的“树”)。

作为最好的近似,您可以在父级内部查找子级,例如类似的东西C++:boost ptree 相对键.

这假设您始终有“根”可用于搜索。

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

获取boost property_tree父节点 的相关文章

  • 查找哪些页面不再与写入时复制共享

    假设我在 Linux 中有一个进程 我从中fork 另一个相同的过程 后forking 因为原始进程将开始写入内存 Linux写时复制机制将为进程提供与分叉进程使用的不同的唯一物理内存页 在执行的某个时刻 我如何知道原始进程的哪些页面已被写
  • 进程何时获得 SIGABRT(信号 6)?

    C 中进程获得 SIGABRT 的场景有哪些 该信号是否始终来自进程内部 或者该信号可以从一个进程发送到另一个进程吗 有没有办法识别哪个进程正在发送该信号 abort 向调用进程发送SIGABRT信号 就是这样abort 基本上有效 abo
  • 为什么libc++的shared_ptr实现使用完整内存屏障而不是宽松内存屏障?

    在boost的实现中shared ptr 它用放松内存排序以增加其引用计数 https github com boostorg smart ptr blob master include boost smart ptr detail sp
  • ASP.NET MVC 中的经典 ASP (C#)

    我有一个应用程序想要 最终 转换为 ASP NET MVC 我想要进行全面的服务升级 到 ASP NET 但想要使用当前的 ASP 内容来运行当前的功能 这样我就可以在对新框架进行增量升级的同时升级小部分 该站点严重依赖于不太成熟的 VB6
  • 如何创建可以像 UserControl 一样编辑的 TabPage 子类?

    我想创建一个包含一些控件的 TabPage 子类 并且我想通过设计器来控制这些控件的布局和属性 但是 如果我在设计器中打开子类 我将无法像在 UserControl 上那样定位它们 我不想创建一个带有 UserControl 实例的 Tab
  • 为什么要序列化对象需要 Serialized 属性

    根据我的理解 SerializedAttribute 不提供编译时检查 因为它都是在运行时完成的 如果是这样 那么为什么需要将类标记为可序列化呢 难道序列化器不能尝试序列化一个对象然后失败吗 这不就是它现在所做的吗 当某些东西被标记时 它会
  • C++:重写已弃用的虚拟方法时出现弃用警告

    我有一个纯虚拟类 它有一个纯虚拟方法 应该是const 但不幸的是不是 该接口位于库中 并且该类由单独项目中的其他几个类继承 我正在尝试使用这个方法const不会破坏兼容性 至少在一段时间内 但我找不到在非常量方法重载时产生警告的方法 以下
  • JSON 数组到 C# 列表

    如何将这个简单的 JSON 字符串反序列化为 C 中的列表 on4ThnU7 n71YZYVKD CVfSpM2W 10kQotV 这样 List
  • 如何配置 WebService 返回 ArrayList 而不是 Array?

    我有一个在 jax ws 上实现的 java Web 服务 此 Web 服务返回用户的通用列表 它运行得很好 Stateless name AdminToolSessionEJB RemoteBinding jndiBinding Admi
  • 从多个类访问串行端口

    我正在尝试使用串行端口在 arduino 和 C 程序之间进行通信 我对 C 编程有点陌生 该程序有多种用户控制形式 每一个都需要访问串口来发送数据 我需要做的就是从每个类的主窗体中写入串行端口 我了解如何设置和写入串行端口 这是我的 Fo
  • 将数据打印到文件

    我已经超载了 lt lt 运算符 使其写入文件并写入控制台 我已经为同一个函数创建了 8 个线程 并且我想输出 hello hi 如果我在无限循环中运行这个线程例程 文件中的o p是 hello hi hello hi hello hi e
  • Azure 事件中心 - 按顺序接收事件

    我使用下面的代码从 Azure Event Hub 接收事件 https learn microsoft com en us azure event hubs event hubs dotnet framework getstarted s
  • 无法将类型“System.IO.Stream”隐式转换为“Java.IO.InputStream”

    我提到了一些类似的问题 但没有一个涉及IO 当我使用时 我在java中使用了相同的代码Eclipse 那次就成功了 但现在我尝试在中使用这段代码Mono for Android C 它不起作用 我正在尝试运行此代码来创建一个InputStr
  • 将构建日期放入“关于”框中

    我有一个带有 关于 框的 C WinForms 应用程序 我使用以下方法将版本号放入 关于 框中 FileVersionInfo GetVersionInfo Assembly GetExecutingAssembly Location F
  • 当我“绘制”线条时,如何将点平均分配到 LineRenderer 的宽度曲线?

    我正在使用线条渲染器创建一个 绘图 应用程序 现在我尝试使用线条渲染器上的宽度曲线启用笔压 问题在于 AnimationCurve 的 时间 值 水平轴 从 0 标准化为 1 因此我不能在每次添加位置时都在其末尾添加一个值 除非有一个我不知
  • 是否可以有一个 out ParameterExpression?

    我想定义一个 Lambda 表达式out范围 有可能做到吗 下面是我尝试过的 C Net 4 0 控制台应用程序的代码片段 正如您在 procedure25 中看到的 我可以使用 lambda 表达式来定义具有输出参数的委托 但是 当我想使
  • 转到定义:“无法导航到插入符号下的符号。”

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我今天突然开始在我的项目中遇到一个问题 单击 转到定义 会出现一个奇怪的错误 无法导航到
  • 用于 C# XNA 的 Javascript(或类似)游戏脚本

    最近我准备用 XNA C 开发另一个游戏 上次我在 XNA C 中开发游戏时 遇到了必须向游戏中添加地图和可自定义数据的问题 每次我想添加新内容或更改游戏角色的某些值或其他内容时 我都必须重建整个游戏或其他内容 这可能需要相当长的时间 有没
  • Googletest:如何异步运行测试?

    考虑到一个包含数千个测试的大型项目 其中一些测试需要几分钟才能完成 如果按顺序执行 整套测试需要一个多小时才能完成 通过并行执行测试可以减少测试时间 据我所知 没有办法直接从 googletest mock 做到这一点 就像 async选项
  • 使用 Crypto++ 获取 ECDSA 签名

    我必须使用 Crypto 在变量中获取 ECDSA 签名 我在启动 SignMessage 后尝试获取它 但签名为空 我怎样才能得到它 你看过 Crypto wiki 吗 上面有很多东西椭圆曲线数字签名算法 http www cryptop

随机推荐

  • 在反应本机样式表中使用变量将无法识别该变量

    我将颜色作为 props color 导入到我的功能组件中 并将其设置为状态 tagColor 当我在样式表中使用 tagColor 作为值来设置背景颜色时 我收到错误 找不到变量 tagColor 如何在样式表中使用变量 const Ta
  • 值与实体对象(领域驱动设计)

    我刚刚开始阅读DDD 我无法完全理解实体与值对象的概念 有人可以解释当值对象被设计为实体对象时系统可能面临的问题 可维护性 性能 等 吗 例子会很棒 简化为本质区别 身份对于实体很重要 但对于价值对象并不重要 例如 某人的姓名是一个值对象
  • WCF异常抛出和OOP方式处理

    好的 所以我就同一主题提出了另一个问题here虽然我没有得到直接的答案 但我整理了一些代码来完成我想做的事情 问题是 这种方式是否违反了一些 OOP 原则 我想要什么 使用正确的 OOP 声明服务的故障类型 在客户端有一个 catch 块
  • 是否可以使用 MediaStore.VOLUME_EXTERNAL 获取 WhatsApp 媒体文件

    我的应用程序需要备份 WhatsApp 状态 语音注释和图像的功能 如您所知 Android Q 后谷歌强制使用 MediaStore API 访问外部媒体文件 WhatsApp 还将他们的文件移至 Android media com wh
  • 使用 Scala 合并两个 CSV 文件的交集

    从输入 1 开始 fruit apple cider animal beef burger 并输入 2 animal beef 5kg fruit apple 2liter fish tuna 1kg 我需要制作 fruit apple c
  • Jquery UI 自动完成事件更改

    您好 我遇到了更改事件的问题 根据文档 应该有对象 ui item 选择一个项目后 ui item 指所选项目 始终在关闭事件后触发 但是当我尝试时 ui item 未定义 当自动完成中的输入与脚本中的数据不匹配时 我希望取消设置 s to
  • R - 添加在组内按顺序计数但重复重复的列

    我正在寻找一种解决方案来添加 desired result 列 最好使用 dplyr 和 或 ave 请参阅此处的数据框 其中组是 部分 我希望 desired results 列按顺序计数的唯一实例位于 exhibit 中 structu
  • .Net core 在静态文件夹(www)中添加文件夹并保存图像文件

    在静态文件夹中添加文件并在静态文件夹中保存图像 将 Base64 图像保存在 Dot net Core 项目中 public class EventMastersController Controller private IHostingE
  • Xcode 6.4 中的模拟器太多了

    我的 xCode 应用程序中有太多我尝试删除 但稍等片刻它又回到设备列表如何删除它 xcode 版本 6 4 6E35b 图片来自我的 xCode 设备列表中的图片 退出 Xcode 和模拟器 然后 在终端中 说 xcrun simctl
  • .包含在以下查询中并不真正包含

    var diaryEntries from entry in repository GetQuery
  • 如何使用 Struts 2 标签迭代 Set 元素

    我有两个Sets set1 contains A B C D elements set2 contains E F D G elements 我想比较每个元素set1与每一个元素set2并使用 Struts2 标签显示匹配的元素 重新整理以
  • strings.xml 中的参数可以吗? [复制]

    这个问题在这里已经有答案了 在我的 Android 应用程序中 我将通过国际化来实现我的字符串 我对不同语言的语法和句子构建方式有疑问 例如 5 分钟前 英语 vor 5 分钟 德语 我可以在 strings xml 中执行类似以下操作吗
  • 在 firebase 上使用 gzip 压缩

    我正在尝试在 Firebase 托管的 Web 上压缩 css 和 js 以提高加载速度 但是我无法使用 firebase json 配置文件为我的资产正确设置 gzip 压缩 The curl v命令显示从服务器提供文件时不执行压缩 还检
  • 为什么 std::unique_ptr 向量会出现无效指针异常

    我编写了简单的代码来帮助我理解智能指针 string s str vector
  • 如何在Android中的位图图像上添加字符串?

    我想在位图图像上添加一个字符串 我有一个方法drawTextToBitmap 这个方法工作成功 将字符串放在位图图像上 但是我的位图图像非常小 就像 pinmark 图像一样 这个函数根据位图高度和宽度设置字符串 我想放置的字符串超过位图图
  • numba 渴望编译吗?图案是什么?

    我在 numba 网站上查看了 eager Compilation 但无法弄清楚如何指定类型 他们使用的例子是这样的 from numba import jit int32 jit int32 int32 int32 def f x y A
  • 如何在通知中向服务发送 PendingIntent 后隐藏通知面板

    All 我编写了一个服务来更新系统状态 然后使用 startForeground 将服务置于前台 同时向其添加通知 在通知中 我使用remoteView获得三个带有三个OnClickPendingIntent的图像 其中之一是发送回服务 并
  • 我如何在活动中获取接收器实例(在AndroidManifest.xml中注册)

    我已经在 AndroidManifest xml 中注册了一个接收器 如下所示
  • 通过选择另一个下拉值动态填充下拉列表

    我的要求是 对于 膳食 下拉列表中的选择 第二个下拉列表 类别 应动态填充与第一个下拉列表中的选择相关的值 然后 根据膳食下拉菜单中选择的内容 列表的类别应发生变化 我已经编写了以下 Javascript 函数 但我得到的输出并不是新填充第
  • 获取boost property_tree父节点

    我在程序中使用 boost property tree 我已经设置了使用自定义路径类型的树 我正在寻找的是获取特定节点的父节点 ID 这是一个例子 MetaStorageTree tree typedef boost property tr