c++ lists(鍊錶)
lists將元素按順序儲存在鍊錶中
. 與 向量
(vectors)
相比,
它允許快速的插入和刪除,但是隨機訪問卻比較慢
.stl中
end()
指向的總是無效值,取值都用迭代器,用法跟指標差不多。
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
中重複的元素
附list
用法例項:
#include
#include
#include
#include
using namespace std;
//建立乙個
list
容器的例項
listint
typedef listlistint;
//建立乙個
list
容器的例項
listchar
typedef listlistchar;
void main(void)
cout << endl;
//輸出為
4 3 2 1
//使用
stl的
accumulate(累加)
演算法int result = accumulate(listone.begin(), listone.end(),0);
cout<<"sum="<
cout<<"------------------"<
//輸出為
sum=10
//--------------------------
//用list
容器處理字元型資料
//--------------------------
//用listchar
建立乙個名為
listone
的list
物件listchar listtwo;
//宣告
i為迭代器
listchar::iterator j;
//從前面向
listtwo
容器中新增資料
listtwo.push_front ('a');
listtwo.push_front ('b');
//從後面向
listtwo
容器中新增資料
listtwo.push_back ('x');
listtwo.push_back ('y');
//從前向後顯示
listtwo
中的資料
cout<<"listtwo.begin()---listtwo.end():"<
for (j = listtwo.begin(); j != listtwo.end(); ++j)
cout << char(*j) << " ";
cout << endl;
//輸出為
b a x y
//使用
stl的
max_element
演算法求listtwo
中的最大元素並顯示
j=max_element(listtwo.begin(),listtwo.end());
cout << "the maximum element in listtwo is: "< }
//輸出為:
the maximum element in listtwo is: y
#include
#include
using namespace std;
typedef listintlist;
//從前向後顯示
list
佇列的全部元素
void put_list(intlist list, char *name)
//測試
list
容器的功能
void main(void)
補充:stl
標準函式
find
進行vector
、list
鍊錶查詢
#include
#include
#include
using namespace std;
class example
bool operator==(example const & rhs)
private:
int i; };
int main(void)
#include
#include
#include
#include
using namespace std;
typedef listlistint;
int main(void) ;
listint ls1;
ls1.assign(a,a+5);
listint::iterator it;
for( it=ls1.begin(); it!=ls1.end(); it++)
cout<<*it<<" ";
cout<
//輸出
1 5 3 5 6
ls1.insert( ls1.end(), 4 );
for( it=ls1.begin(); it!=ls1.end(); it++)
cout<<*it<<" ";
cout<
//輸出
1 5 3 5 6 4
ls1.remove( 5 );
for( it=ls1.begin(); it!=ls1.end(); it++)
cout<<*it<<" ";
cout< }
//輸出
1 3 6 4 【5
元素全部被刪除了】
/* 輸出如下
1 5 3 5 6
1 5 3 5 6 4
1 3 6 4 */
C Lists(鍊錶)
lists將元素按順序儲存在鍊錶中.與 向量 vectors 相比,它允許快速的插入和刪除,但是隨機訪問卻比較慢.assign 給list賦值 back 返回最後乙個元素 begin 返回指向第乙個元素的迭代器 clear 刪除所有元素 empty 如果list是空的則返回true end 返回末尾...
list 鍊錶 常用成員函式
在刷題過程中遇到了list中常用的函式,所以總結下來,希望對大家有用。include using namespace std list採用鏈式儲存方法,所以list不能隨機訪問,但是在list插入和刪除元素高效。判空 empty 語法 bool empty empty 函式返回真 true 如果鍊錶...
成員函式指標表
函式指標和成員函式指標的乙個公共用途是,將它們儲存在函式表中。函式表是函式指標的集合,在執行時從中選擇給定呼叫。對具有幾個相同型別成員的類而言,可以使用這樣的表來從這些成員的集合中選擇乙個。假定擴充套件screen類以包含幾個成員函式,其中每乙個在特定方向移動游標 class screen 我們可能...