According to what I've read, std::set in C++ is "usually" implemented as a tree (red-black one?) that is sorted.
I'm not sure what you mean; does it indicate that the iteration order of the set is always ascending by specification?
Or is it just "normal implementation detail," and some library/compiler may break this convention from time to time?