淺談C++容器(一)

來源:互聯網
上載者:User

在物件導向的語言中,大多引入了容器的概念。那麼
什麼

容器?實質上就是一組相同類型對象的集合,但是它又不僅僅像數組那樣簡單,它實現了比數組更複雜的資料結構,當然也實現了比數組更強大的功能。C++
標準模板庫裡提供了10
種通用的容器類,它基本上可以解決程式中遇到的大多數問題。   

現在我主要來說明這10
種通用容器的功能用途以及相互之間的相同與異同。但是在這裡,我不提倡一開始就著手從這10
種容器開始,因為這樣恐怕在隨後的理解上產生很多困難。在此之前瞭解一下資料結構的基本概念是很有必要的,因為容器的概念是基於資料結構的基本知識,實際上這些容器就是對資料結構提煉的產物,或者說每一個容器就是對某一種資料結構的執行個體化。容器是由資料結構而來,如果不瞭解資料結構就很難理解容器的本質。

資料結構的概念提出於上世紀80
年代,它是隨著程式語言結構化設計的誕生而興起。資料結構主要包含兩塊內容:資料結構和演算法。曾經在電腦界有這樣一個公式:資料結構+
演算法=
程式,這種思想對程式設計產生著深刻的影響,即使是現在依舊是電腦程式設計的基礎,可見它的重要性。隨著物件導向程式設計的發展資料結構也在進一步的發展和變化,它在未來也是程式設計不可或缺的基礎之一。資料結構如此之重要,但是它的內容太過於複雜龐大,在這裡就C++
通用容器所用到的基礎資料結構知識作以簡單介紹。

電腦運行實質上就是在處理一些資料。這些資料對電腦來說不是雜亂無章的,而是有內在的聯絡,這種聯絡也許對人類思維來說不是一目瞭然的,但電腦能清楚的認識到。正是這種聯絡,大量的複雜的資料才能得到合理的組織和有效處理。資料結構就是研究這些資料以及它們之間的聯絡,還有在這種聯絡下對資料的操作。

在資料結構裡對資料的研究主要從三個方面著手





資料的邏輯結構




資料的儲存結構




資料的操作

資料元素之間的相互連絡方式稱為資料的邏輯結構


。資料的邏輯結構是對資料元素之間邏輯關係的描述,它可以用一個資料元素的集合和定義在此集合上的若干關係來表示。資料的邏輯結構經常被簡稱為資料結構。

按照資料的邏輯結構來分,有兩種形式:線性結構和非線性結構。線性結構是指
除第一個和最後一個資料元素外,每個資料元素有且只有一個前驅元素和一個後繼元素,而非線性資料結構則會有零個或多個前驅元素和零個或多個後繼元素。

資料元素在電腦中的儲存表示方式稱為資料的儲存結構


,也稱物理結構。任何需要電腦進行管理和處理的資料元素都必須首先按某種方式儲存在電腦中,資料存放區結構能正確地表示出資料元素間的邏輯關係。

按照資料的儲存結構來分,有兩種類型:順序儲存結構和鏈式儲存結構。順序儲存結構是把資料元素儲存在一塊連續地址空間的記憶體中,其特點是邏輯上相鄰的資料元素在物理上(即記憶體儲存位置上)也相鄰,資料間的邏輯關係表現在資料元素的儲存位置關係上。鏈式儲存結構的關鍵是使用節點,節點是由資料元素域與指標域組合的一個整體,指標將相互關聯的節點銜接起來。其特點是邏輯上相鄰的元素在物理上不一定相鄰,資料間的邏輯關係表現在節點的銜接關係上。

資料的邏輯結構是從邏輯關係角度觀察資料,它與資料的儲存無關,是獨立於電腦的。而資料的儲存結構是邏輯結構在電腦記憶體中的實現,它是電腦處理的邏輯。

資料操作是指對一種資料類型的資料元素進行的某種處理


。資料的操作是定義在資料的邏輯結構上的,每種邏輯結構都有一個操作的集合,不同的邏輯結構有不同的操作。操作的具體實現與儲存結構有關。對於常用的資料結構的操作主要包括以下幾種:訪問元素、統計元素個數、更新元素、插入元素、刪除元素、尋找元素以及排序元素等。

來自:blog.csdn.net/acosoft

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.