【C++】 C++标准模板库(二) Lists
1. C++ Lists(鏈表)
Lists將元素按順序儲存在鏈表中. 與 向量(vectors)相比, 它允許快速的插入和刪除,但是隨機訪問卻比較慢.
| assign() | 給list賦值 |
| back() | 返回最后一個元素 |
| begin() | 返回指向第一個元素的迭代器 |
| clear() | 刪除所有元素 |
| empty() | 如果list是空的則返回true |
| end() | 返回末尾的迭代器 |
| erase() | 刪除一個元素 |
| front() | 返回第一個元素 |
| get_allocator() | 返回list的配置器 |
| insert() | 插入一個元素到list中 |
| max_size() | 返回list能容納的最大元素數量 |
| merge() | 合并兩個list |
| pop_back() | 刪除最后一個元素 |
| pop_front() | 刪除第一個元素 |
| push_back() | 在list的末尾添加一個元素 |
| push_front() | 在list的頭部添加一個元素 |
| rbegin() | 返回指向第一個元素的逆向迭代器 |
| remove() | 從list刪除元素 |
| remove_if() | 按指定條件刪除元素 |
| rend() | 指向list末尾的逆向迭代器 |
| resize() | 改變list的大小 |
| reverse() | 把list的元素倒轉 |
| size() | 返回list中的元素個數 |
| sort() | 給list排序 |
| splice() | 合并兩個list |
| swap() | 交換兩個list |
| unique() | 刪除list中重復的元素 |
2. C++ Lists(鏈表)
賦值(assign)
語法:| void assign( input_iterator start, input_iterator end );void assign( size_type num, const TYPE &val ); |
assign()函數以迭代器start和end指示的范圍為list賦值或者為list賦值num個以val為值的元素。
相關主題:insert(),
back
語法:| reference back(); |
back()函數返回一個引用,指向list的最后一個元素。
相關主題:front(), pop_back(),
begin
語法:| iterator begin(); |
begin()函數返回一個迭代器,指向list的第一個元素。例如,
// 創建一個元素類型是字符的鏈表list<char> charList;for( int i=0; i < 10; i++ )charList.push_front( i + 65 );// 顯示這個鏈表list<char>::iterator theIterator;for( theIterator = charList.begin(); theIterator != charList.end(); theIterator++ )cout << *theIterator; 相關主題:end(),
clear
語法:| void clear(); |
clear()函數刪除list的所有元素。
empty
語法:| bool empty(); |
empty()函數返回真(true)如果鏈表為空,否則返回假。例如:
list<int> the_list;for( int i = 0; i < 10; i++ )the_list.push_back( i ); while( !the_list.empty() ) {cout << the_list.front() << endl;the_list.pop_front();}end
語法:| iterator end(); |
end()函數返回一個迭代器,指向鏈表的末尾。
相關主題:begin(),
erase
語法:| iterator erase( iterator pos );iterator erase( iterator start, iterator end ); |
erase()函數刪除以pos指示位置的元素, 或者刪除start和end之間的元素。 返回值是一個迭代器,指向最后一個被刪除元素的下一個元素。
front
語法:| reference front(); |
front()函數返回一個引用,指向鏈表的第一個元素。
list<int> the_list;for( int i = 0; i < 10; i++ )the_list.push_back( i ); while( !the_list.empty() ) {cout << the_list.front() << endl;the_list.pop_front();} 相關主題:back(),
get_allocator
語法:| allocator_type get_allocator(); |
get_allocator()函數返回鏈表的配置器。
insert
語法:| iterator insert( iterator pos, const TYPE &val );void insert( iterator pos, size_type num, const TYPE &val );void insert( iterator pos, input_iterator start, input_iterator end ); |
insert()插入元素val到位置pos,或者插入num個元素val到pos之前,或者插入start到end之間的元素到pos的位置。返回值是一個迭代器,指向被插入的元素。
max_size
語法:| size_type max_size(); |
max_size()函數返回鏈表能夠儲存的元素數目。
merge
語法:| void merge( list &lst );void merge( list &lst, Comp compfunction ); |
merge()函數把自己和lst鏈表連接在一起,產生一個整齊排列的組合鏈表。如果指定compfunction,則將指定函數作為比較的依據。
pop_back
語法:| void pop_back(); |
pop_back()函數刪除鏈表的最后一個元素。
相關主題:pop_front(),
pop_front
語法:| void pop_front(); |
pop_front()函數刪除鏈表的第一個元素。
相關主題:pop_back(),
push_back
語法:| void push_back( const TYPE &val ); |
push_back()將val連接到鏈表的最后。例如:
list<int> the_list;for( int i = 0; i < 10; i++ )the_list.push_back( i ); 相關主題:push_front(),
push_front
Syntax:| void push_front( const TYPE &val ); |
push_front()函數將val連接到鏈表的頭部。
相關主題:push_back(),
rbegin
語法:| reverse_iterator rbegin(); |
rbegin()函數返回一個逆向迭代器,指向鏈表的末尾。
相關主題:rend(),
remove
語法:| void remove( const TYPE &val ); |
remove()函數刪除鏈表中所有值為val的元素。例如
// 創建一個鏈表,元素是字母表的前10個元素list<char> charList;for( int i=0; i < 10; i++ )charList.push_front( i + 65 );// 刪除所有'E'的實例charList.remove( 'E' );remove_if
語法:| void remove_if( UnPred pr ); |
remove_if()以一元謂詞pr為判斷元素的依據,遍歷整個鏈表。如果pr返回true則刪除該元素。
rend
語法:| reverse_iterator rend(); |
rend()函數迭代器指向鏈表的頭部。
resize
語法:| void resize( size_type num, TYPE val ); |
resize()函數把list的大小改變到num。被加入的多余的元素都被賦值為val
reverse
語法:| void reverse(); |
reverse()函數把list所有元素倒轉。
size
語法:| size_type size(); |
size()函數返回list中元素的數量。
排序(sort)
語法:| void sort();void sort( Comp compfunction ); |
sort()函數為鏈表排序,默認是升序。如果指定compfunction的話,就采用指定函數來判定兩個元素的大小。
splice
語法:| void splice( iterator pos, list&lst );void splice( iterator pos, list&lst, iterator del );void splice( iterator pos, list&lst, iterator start, iterator end ); |
splice()函數把lst連接到pos的位置。如果指定其他參數,則插入lst中del所指元素到現鏈表的pos上,或者用start和end指定范圍。
swap
語法:| void swap( list &lst ); |
swap()函數交換lst和現鏈表中的元素。
unique
語法:| void unique();void unique( BinPred pr ); |
unique()函數刪除鏈表中所有重復的元素。如果指定pr,則使用pr來判定是否刪除。
總結
以上是生活随笔為你收集整理的【C++】 C++标准模板库(二) Lists的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【C++】 C++标准模板库(一) Ve
- 下一篇: 【C++】 C++标准模板库(三) Ma