c – std ::将自定义树转换为新树
我有一个像数据结构一样的树定义为:
template<typename T>
struct node {
T val;
node<T>* parent;
unique_ptr<node<T>> next_sibling;
unique_ptr<node<T>> first_child;
};
template<typename T>
struct tree {
...
private:
unique_ptr<node<T> _head;
};
我还为树类定义了几个迭代器(preorder,inorder …).
在给定的树上使用std :: transform工作:
tree<int> t;
...
std::transform(t.begin(), t.end(), t.begin(), [](){});
但是我知道想要一个类似于back_inserter的东西来构建一个具有相同层次结构的新树:
tree<int> t_n;
std::transform(t.begin(), t.end(), my_inserter(t_n));
如何才能做到这一点?