1. 程式人生 > >為什麽map對象不能使用stl中的sort函數

為什麽map對象不能使用stl中的sort函數

containe sta mem sort and map stack iat war

STL所提供的各式各樣算法中,sort()是最復雜最龐大的一個。這個算法接受兩個RandomAccestlerators(隨機存取叠代器),然後將區間內的所有元素以漸增方式由小到大重新排列。第二個版本則允許用戶指定一個仿函數(functor),作為排序標準,STL的所有關系型容器主要包括set和map這兩種容器(associative containers)都擁有自動排序功能(底層結構采用RB-tree,所以不需要用到這個sort算法。至於序列式容器(squence containers)中的 stack、queue 和priority-queue都有特別的出入口,不允許用戶對元素排序。剩下vector.deque和list,前兩者的叠代器屬於RandomAccessiterators,適合使用sort算法,list的叠代器則屬於Bidirectioinallterators,適合使用sort算法.list的叠代器則屬於Bidirectionallterators,不在STL標準之列的slist,其叠代器更屬於ForwardIIterators,不在STL標準之列的slist,其叠代器更屬於ForwardIIterators,都不適用與sort算法,如果要對list或slist排序,應該使用它們自己提供的member functions sort().

為什麽map對象不能使用stl中的sort函數