我正在使用ticpp来轻松处理xml文件。然而,迭代器接口使用起来有点尴尬。我是否正确假设无法以相反的顺序遍历某个父级的子级? (documentation)
迭代器接口确实有operator--()
。但是,在“end”迭代器上调用它会导致“访问冲突读取位置0x00000000”。我错过了什么吗?有没有一种快速处理方法?
我目前想到的解决方案是简单地遍历列表两次:首先将所有子项存储在std::array
中(数组最好在这里?)然后再按相反的顺序检查所有元素。但正如所说:我不禁想到我一定错过了一些功能......
答案 0 :(得分:0)
原来我错过了一些东西;而不是使用ticpp提供的迭代器接口,我也可以使用tixml中基于节点的接口。 (ticpp只是一个抽象层)。
以下循环允许的功能很少:
for(ticpp::Node* pchild(elem.LastChild());
pchild != nullptr;
pchild = pchild->PreviousSibling(false)) {