淺析c++ stl 之list

1.stl容器之list

list 是c++標準模板庫中 一種非常重要的序列式容器。序列式容器意味着容器中的數據元素的順序只和插入的時機有關同樣,list作爲一種容器用來存儲數據元素集合.簡單來說也就是一種數據結構,我們必須從邏輯結構和物理結構兩個角度來考慮。


2.邏輯結構:容器list中存放的數據元素之間的關係是一對一的線性關係。


3.物理結構:容器list是由雙向鏈表(doubley linked list)構成的,是一種鏈式存儲結構。


4.性質和用途:結構決定性質,性質決定用途。我們知道容器list是由雙向鏈表構成的。這就意味着list中的每個數據元素都以一部分內存來指示它的前趨元素和後繼元素。我們知道,鏈式存儲結構元素之間的關係是通過指針來確定的,邏輯相鄰的數據元素不一定物理結構也相鄰。所以list不提供隨機存儲。但是list在任何位置(注意這裏是任何位置,包括頭尾兩端)插入和刪除數據元素都非常快,因爲只要改變指針的指向就ok啦。所以如果是要求在任何位置插入和刪除數據可以考慮容器list來存儲數據


5.c++代碼:產生一個空list,準備放置字符,然後將‘a’到‘z’的所有字符插入其中,利用循環每次打印並刪除數據元素集的第一個元素,從而打印出所有元素。

#include<list>
#include<iostream>
using namespace std;
int main(int argc , char **argv)
{
	list<char> char_list;//char_list爲 char類型的list,初始化爲空
	 
	for( char c = 'a'; c <= 'z' ; ++c )//然後將‘a’到‘z’的所有字符插入其中
		char_list.push_back(c);

	while( !char_list.empty() )//當char_list不爲空時,
	{
		cout << char_list.front() << ' ';//輸出char_list中的第一個數據元素。
		char_list.pop_front();//刪除的char_list中的第一個數據元素。
	}


	return 0;
}

6.實驗結果:


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