为什么map对象不能使用stl中的sort函数
STL所提供的各式各樣算法中,sort()是最復(fù)雜最龐大的一個(gè)。這個(gè)算法接受兩個(gè)RandomAccestlerators(隨機(jī)存取迭代器),然后將區(qū)間內(nèi)的所有元素以漸增方式由小到大重新排列。第二個(gè)版本則允許用戶指定一個(gè)仿函數(shù)(functor),作為排序標(biāo)準(zhǔn),STL的所有關(guān)系型容器主要包括set和map這兩種容器(associative containers)都擁有自動(dòng)排序功能(底層結(jié)構(gòu)采用RB-tree,所以不需要用到這個(gè)sort算法。至于序列式容器(squence containers)中的 stack、queue 和priority-queue都有特別的出入口,不允許用戶對(duì)元素排序。剩下vector.deque和list,前兩者的迭代器屬于RandomAccessiterators,適合使用sort算法,list的迭代器則屬于Bidirectioinallterators,適合使用sort算法.list的迭代器則屬于Bidirectionallterators,不在STL標(biāo)準(zhǔn)之列的slist,其迭代器更屬于ForwardIIterators,不在STL標(biāo)準(zhǔn)之列的slist,其迭代器更屬于ForwardIIterators,都不適用與sort算法,如果要對(duì)list或slist排序,應(yīng)該使用它們自己提供的member functions sort().
轉(zhuǎn)載于:https://www.cnblogs.com/jijiboy/p/10583096.html
總結(jié)
以上是生活随笔為你收集整理的为什么map对象不能使用stl中的sort函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 173华大单片机HC32F460系列fl
- 下一篇: serlvet中的过滤器filter