cocos遊戲開發 vector的介紹

2021-07-08 15:19:30 字數 1426 閱讀 3479

vector 是乙個類模板(class template)。

使用模板可以編寫乙個類定義或函式定義,而用於多個不同的資料型別。因此,我們可以定義儲存 string 物件的 vector,或儲存 int 值的 vector,又或是儲存自定義的類型別物件(如sales_items 物件)的 vector。vector 不是一種資料型別,而只是乙個類模板,可用來定義任意多種資料型別。vector 型別的每一種都指定了其儲存元素的型別。

vector的用法:

(1)建立乙個vector

vector容器提供了多種建立方法,下面介紹幾種常用的。

建立乙個widget型別的空的vector物件:

vectorvwidgets;

建立乙個包含500個widget型別資料的vector:

vectorvwidgets(500);

建立乙個包含500個widget型別資料的vector,並且都初始化為0:

vectorvwidgets(500,widget(0));

建立乙個widget的拷貝:

vectorvwidgetsfromanother(vwidgets);

(2)向vector新增乙個資料

vector新增資料的預設方法是

push_back()。

push_back()函式表示將資料新增到vector的尾部,並按需要來分配記憶體。例如:

向vector;中新增10個資料,需要如下編寫**:

for(int i= 0;i<10; i++)

(3)獲取vector中指定位置的資料

vector裡面的資料是動態分配的,使用

push_back()的一系列分配空間常常決定於檔案或一些資料來源。

如果想知道vector是否為空,可以使用empty(),空返回true,否則返回false。獲取vector的大小,可以使用size()。例如,如果想獲取乙個vector v的大小,但不知道它是否為空,或者已經包含了資料,如果為空時想設定為 -1,你可以使用下面的**實現:

int nsize = v.empty() ? -1 : static_cast(v.size());

訪問vector中的資料

使用兩種方法來訪問vector。

1、 vector::at()

2、 vector::operator

operator主要是為了與c語言進行相容。它可以像c語言

陣列一樣操作。但at()是我們的首選,因為at()進行了邊界檢查,如果訪問超過了vector的範圍,將丟擲乙個例外。由於operator容易造成一些錯誤,所以我們很少用它.

(4)刪除vector中的資料

vector能夠非常容易地新增資料,也能很方便地取出資料,同樣vector提供了erase(),pop_back(),clear()來刪除資料,當刪除資料時,應該知道要刪除尾部的資料,或者是刪除所有資料,還是個別的資料。

cocos2d x IOS遊戲開發

捕魚達回顧 cocos2d x ios遊戲開發 捕魚達人1 內容介紹 上節回顧 cocos2d x ios遊戲開發 城市跑酷14 重寫觸屏 touch 事件處理機制,響應玩家操作 cclabelbmfont的特色就是以占用更多記憶體為代價加快標籤的更新,這與其他任何ccsprite類相似 在遊戲中使...

cocos2d x IOS遊戲開發

捕魚達回顧 cocos2d x ios遊戲開發 捕魚達人1 內容介紹 上節回顧 cocos2d x ios遊戲開發 城市跑酷3 讀取資源,設定背景層 遊戲的元素應該是多種多樣的,只有乙個背景就略顯單調了,這裡我們來加入一些道具。來看下具體的實現 加入背景 城市燈火 background ccspri...

Cocos2d X遊戲開發 二

cocos2d x 遊戲開發 程式啟動執行流程 系統設定 視窗解析度 設定模擬器窗體大小 glview setframesize 360,640 設計解析度 可視區域 中也有個設定設計解析度的函式。該函式是設定了我們遊戲設計時候的解析度,也就是可視區域的大小,也就是說設計者初衷的遊戲可視區域的解析度...