属性树提供的操作函数

设备的树状结构为设备的管理提供了一个类似文件系统的方式。设备的每一个具体的子设备映射为一个叶子节点,而每一个叶子节点可进行的操作在property_tree API(property_tree.hpp)中给出。

可以进行的操作有:

1、static sptr make(void);  创建新的、空的属性树

2、sptr subtree(const fs_path &path) const = 0;以当前节点为根节点,创建子树

3、void remove(const fs_path &path) = 0;删除属性或递归删除

4、bool exists(const fs_path &path) const = 0;判断属性树中是否存在某个节点

5、std::vector<std::string> list(const fs_path &path) const = 0;得到给定路径的所有节点

6、template <typename T> property<T> &create(const fs_path &path);在属性树中创建新的入口

7、template <typename T> property<T> &access(const fs_path &path);进入属性树中的某条路径

注:上述函数中的fs_path类型为包含分支和叶子的结构体,其定义如下:

struct fs_path : std::string{
    UHD_API fs_path(void);
    UHD_API fs_path(const char *);
    UHD_API fs_path(const std::string &);
    UHD_API std::string leaf(void) const;//叶子
    UHD_API fs_path branch_path(void) const;//分支
};

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
定义B-存储结构(要求m3;为方便操作,结点中增加双亲结点指针域,最底层的Fail结点用NULL指针表示并且所有结点均存储于内存)。定义B-插入关键字函数、删除关键字函数、查找关键字函数以及按层次遍历输出B-所有结点的函数。主函数定义菜单(1.插入关键字 2.删除关键字 3. 查找关键字 4.层次遍历输出B-所有结点 5.结束程序)。 1. 插入关键字功能的输入为一个关键字,输出为新插入关键字所在结点的信息。 要求结点信息输出格式如下所示: (R102, n, K1, K2, …, Kn) R102表示结点位置,R表示根结点指针;第一个数字1表示根结点的A[1]指针,第二个数字0表求R->A[1]所指结点的A[0]指针,第三个数字2表示R->A[1]->A[0]所指结点的A[2]指针,即该结点指针为: R->A[1]->A[0]->A[2](该结点在第4层上)。n为该结点的关键字数目,K1, K2, …, Kn为该结点中n个非递减有序的关键字。 2. 删除关键字功能的输入为一个关键字,输出为删除成功与失败的信息。 3. 查找关键字功能的输入为一个关键字,输出为查找成功与失败的信息,查找成功时,应输出关键字所在结点信息(结点信息输出方法同1.)。 4. 按层次遍历输出B-所有结点功能的输入为一个字符文件名,输出为该字符文件,字符文件中,一个结点的信息输出一行(结点信息输出方法同1.),结点输出次序为按层次号由小到大并且同层结点从左向右。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值