**
List 不能使用STL提供的算法 sort() , 必须使用自己定义的sort() member function,因为STL算法sort()只接受RamdonAccessIterator,它的实现代码如下,是一个quick sort;
**
list::sort的代码如下(sgi stl):
template <class _Tp, class _Alloc>
void list<_Tp, _Alloc>::sort()
{
// Do nothing if the list has length 0 or 1.
//以下判断如果是空链表,或者是只有一个元素,就不进行任何操作
//使用四则size()== 0 || size()== 1来判断,虽然可以但缓慢些
if (_M_node->_M_next != _M_node && _M_node->_M_nex

本文详细介绍了STL中list容器不能直接使用std::sort的原因,并解析了list::sort成员函数的工作原理,通过实例展示了list排序的过程,涉及到merge、splice等关键操作。
最低0.47元/天 解锁文章
941

被折叠的 条评论
为什么被折叠?



