我想将此C#(Visual Studio)语句移植到C ++ 98。无法使用C ++ 11 copy_if
。这是C#代码:
List<Node> nodes = tree.Nodes.FindAll(n => n.Leaf == false && n.Left == null && n.Right == null);
如何使用for_each
和find_if
移植?
我从这行代码开始:
find_if(tree->getNode().begin, tree->getNode().end, TopNode(tree->getNode()[index]));
其中TopNode
定义为:
struct TopNode
{
explicit TopNode(Node *n) : MyNode(n) { }
inline bool operator()(const Node *m) const { return ((m->getLeaf() == false && m->getLeft() == NULL && m->getRight() == NULL)); }
private:
Node *MyNode;
};
有人可以帮忙写这个循环吗?提前感谢您的时间和建议。