list的獨有sort

摘錄《C++ Primer(第五版)》

與其他容器類型不同,鏈表類型list和forward_list定義了獨有的sort。

通用版本的sort要求隨機訪問迭代器,因此不能用於list和forward_list,因爲這兩個類型分別提供雙向迭代器和前向迭代器。

1、雙向迭代器(bidirectional iterator):可以正向/反向讀寫序列中的元素。除了支持所有前向迭代器的操作之外,雙向迭代器還支持前置和後置遞減運算符(--)。算法reverse要求雙向迭代器,除了forward_list之外,其他標準庫都提供符合雙向迭代器要求的迭代器。

2、隨機訪問迭代器(random-access iterator):提供在常量時間內訪問序列中任意元素的能力,此類迭代器支持雙向迭代器的所有功能,此外還支持

(1)用於比較兩個迭代器相對應位置的關係運算符(<、<=、>、>=)

(2)迭代器和一個整數值的加減運算(+、+=、-和-=),計算結果是迭代器在序列中前進(或後退)給定整數個元素後的位置

(3)用於兩個迭代器上的減法運算符(-),得到兩個迭代器的距離

(4)下表運算符(iter[n]),與*(iter[n])等價

算法sort要求隨機訪問迭代器。array、deque、string和vector的迭代器都是隨機訪迭代器,用於訪問內置數據元素的指針也是。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章