C 向量講解

2021-06-20 19:24:29 字數 1103 閱讀 3637

向量(vector)是乙個深奧的詞。不過這裡的向量不是數學裡的向量,也不是物理裡的向量。在c++中的向量,就是乙個存放資料的地方,類似於一維陣列和鍊錶。

在第九章末尾,我們介紹了陣列儲存和鍊錶儲存的優缺點。陣列的缺點是分配空間不靈活;鍊錶的缺點是無法通過下標快速找到結點。

然而這裡介紹的向量卻吸收了這兩種資料結構各自的優點,綜合性能較高。

向量的分配空間是會隨著資料的量而變化的,如果空間不夠,那麼向量的空間會自動增長。類似於陣列,我們也可以通過下標來訪問向量中的資料元素,增快找到資料的速度。

在編寫鍊錶程式的時候,我們一定有這樣的困惑:鍊錶裡面儲存的資料型別可能是各種各樣的,難道我們要為各種資料型別都寫乙個鍊錶程式麼?我們能不能寫乙個萬用的鍊錶程式呢?

在powerpoint之類的軟體中,有一種模板功能。模板提供的文件框架是基本完整的,我們只需要在一些地方填寫上自己需要的內容,就是乙個完整的文件。在c++中,也有這麼一種模板(template),我們只需要在使用之前填寫自己需要的資料型別,就是乙個完整的程式。我們把具有模板功能的類稱為模板類,向量就是乙個模板類。在這一節,我們只需要了解如何使用向量這個模板類。關於更多模板的知識,將在後面的章節再作介紹。

類名物件名(初始化資料);

而建立乙個模板類物件的方法是:

類名《資料型別列表》 物件名(初始化資料);

即在類名之後填寫資料型別,來創造乙個符合自己需要的物件。

同字串一樣,向量也有著自己的各種操作。下表就是向量常用的一些操作:

由於涉及迭代器(iterator)的知識,我們無法學習向量的插入資料和刪除資料操作。有興趣的讀者可以去看一下《c++ primer》的相關章節。

下面我們用向量來解決習題9.6.2,模擬一下棧操作:(程式13.4)

#include

#include

using namespace std;

int main()

else }

}while (temp!='#');

for (int i=0;i讀到這裡,可能你還沒有完全明白到底什麼是類,什麼是物件,甚至搞不清建立物件的時候,物件名旁邊的括號裡面應該填什麼。沒關係,這些都不是本章所要掌握的內容。你只要會照貓畫虎地使用字串和向量就可以了。

原文:

支援向量機例項講解

支援向量機例項講解 簡介掌握機器學習演算法不再是天方夜譚的事情。大多數初學者都是從回歸模型學起。雖然回歸模型簡單易學易上手,但是它能解決我們的需求嗎?當然不行!因為除了回歸模型外我們還可以構建許多模型。我們可以把機器學習演算法看成包含劍 鋒刃 弓箭和匕首等 的兵器庫。你擁有各式各樣的工具,但是你應該...

繪製向量花束技巧講解(上)

step 01 開啟ai,建立乙個寬1200px高1130px的畫板。在畫板外的部分,開始準備素材。首先用鉛筆工具來繪製出兩朵花,讓這兩朵花的造型略有區別,但都填色為粉紅漸變。step 02 接下讓我們安排橙紅色的花朵,將粉色的兩朵花朵進行複製並更改其配色,就能獲得新的花朵素材。step 03 再來...

C 入門講解

使用c 語言程式設計時,需要用到各種變數來儲存各種資訊,變數保留的是它所儲存的值的記憶體位置,在設計c 語言時,根據儲存的資訊大小將儲存的資料分為不同的型別 節省記憶體空間 這樣作業系統就能夠根據變數型別,來分配記憶體和決定在保留記憶體中儲存資訊。在c 語言的設計中內建了七種基礎資料型別 布林型 b...