11/7/7 list

列表容器 list<T> 定義在頭文件 < list > 中

列表容器是一個雙向鏈表,其迭代器類型是雙向迭代器,只能遞增或者遞減

sort()

正是由於是雙向迭代器,所以標準庫的 <algorithm> 的 sort() 函數不實用與列表容器

列表容器自定義了 sort() 函數,有一個參數,參數類型是謂詞,默認爲 less<T>() ,故默認列表的 sort() 使用“<”以升序排列

構造函數:

列表的聲明與矢量和雙端隊列的聲明一致,構造函數也類似

list<T> data( int , T )  第一參指定元素個數,第二參指定初始元素默認值

list<T> data( iter1 , iter2 ) 使用一個序列來初始化,第二參指向序列最後一個元素的下一位置

list<T> data( int ) 構造含第一參數個數的元素的空列表

size() 返回元素個數(不是最後一個元素下標)

resize() 重設元素個數,刪去大於重設個數的,不足則以默認值補全

push_back() 後部插入

push_front() 頭部插入

back() 返回尾元素

front() 返回頭元素

insert() 多個版本的插入函數,與適量類似

clear() 清空列表元素

erase()

刪除指定位置的元素

單迭代器參數版本:刪除該迭代器所指位置的元素

雙迭代器參數版本:刪除該兩迭代器所表示的序列

remove() 刪除所有的關鍵字指定的元素

unique() 清除列表中相鄰的重複元素

splice()

刪除源列表中給定位置的元素,並插入目標列表的某個位置

四參數版本 (目標位置 , 源列表 , 起始 = begin() , 終止 = end())

特別注意: 該函數會刪除源列表的被添加入目標位置的元素序列

易錯點:當爲三個參數時,表示從第三個迭代器參數到末尾的一個序列,而不是僅僅第三個迭代器所指的單個元素

merge()

merge( 源列表 , 謂詞 = less<T>() ) 將源列表與目標列表合併,並按謂詞方法排序

特別注意: 該函數會刪除源列表的所有元素

列表指定位置迭代器的設置:

list<T>::iterator iter ;

for(int i=0 ; i < position ; i++)

        ++iter;

最終設置 iter 指向 下標爲 position 的位置

 

 

 

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