<p>I'm wondering if anyone can recommend a good C++ tree implementation, hopefully one that is 
stl compatible if at all possible.</p>

<p>For the record, I've written tree algorithms many times before, and I know it can be fun, but I want to be pragmatic and lazy if at all possible. So an actual link to a working solution is the goal here.</p>

<p>Note: I'm looking for a generic tree, not a balanced tree or a map/set, the structure itself and the connectivity of the tree is important in this case, not only the data within.
So each branch needs to be able to hold arbitrary amounts of data, and each branch should be separately iterateable. </p>

I am going to suggest using std::map instead of a tree.
The complexity characteristics of a tree are:
Insert:       O(ln(n))
Removal:  O(ln(n))
Find:         O(ln(n))
These are the same characteristics the std::map guarantees.
Thus as a result most implementations of std::map use a tree (Red-Black Tree) underneath the covers (though technically this is not required).