【问题标题】:ticpp traverse nodes in reverse orderticpp逆序遍历节点
【发布时间】:2012-12-19 17:57:33
【问题描述】:

我正在使用 ticpp 来轻松处理 xml 文件。但是迭代器接口使用起来有点尴尬。我是否正确假设没有办法以相反的顺序遍历某个父级的子级? (documentation)

迭代器接口确实有一个operator--()。然而,在“结束”迭代器上调用它会导致“访问冲突读取位置 0x00000000。”。我错过了什么吗?有没有快速的方法来处理这个问题?

我目前正在考虑的解决方案是简单地遍历列表两次:首先将所有子项存储在 std::array 中(数组在这里最好?)..然后再次以相反的顺序检查所有元素。但正如所说:我不禁认为我一定错过了一些功能....

【问题讨论】:

    标签: c++ xml-parsing iterator


    【解决方案1】:

    结果我错过了一些东西;除了使用 ticpp 提供的迭代器接口,我还可以使用 tixml 的基于节点的接口。 (ticpp 只是一个抽象层)。

    以下循环允许的函数很少:

    for(ticpp::Node* pchild(elem.LastChild()); 
        pchild != nullptr; 
        pchild = pchild->PreviousSibling(false)) {
    

    【讨论】:

      猜你喜欢
      • 2016-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-21
      • 1970-01-01
      • 2020-03-18
      相关资源
      最近更新 更多