帮你瞬间理清STL各容器与其排序算法sort()的关系!!!

STL的所有关联型容器都有自动排序的功能(底层结构采取RB-tree),所以不需要用到这个sort算法。

至于序列式容器中的stack、queue和priority-queue都有特定的出入口,不允许用户对元素进行排序。

剩下的vector、deque和list,前两者的迭代器都属于RandomAccessIterators,适合使用sort算法,list的迭代器则属于BidirectionalIterators,不在STL标准之列的slist,其迭代器更属于ForwardIterator,都不适合使用sort算法,如果是要对list或者slist中的元素进行排序,应该使用他们自己的member function sort()。

你可能感兴趣的:(c++)