cocos2d-x 3.0開發筆記---vector的使用
最近學習別人的原始碼 接觸到Vector這個模板類,發現很好用,特記錄下來,研究一下。
先來看看用法:
std::vector<T> v;
std是名稱空間
T表示物件的型別,可以是整型int ,字元string,結構struct,或者自定義的類;
我的理解是對陣列的擴充套件,由程式動態管理記憶體。
詳見:點選開啟連結(維基百科)
以下寫一段實用程式碼:
假如我需要一個物件,它有4個屬性,並且我需要從xml檔案中讀取資料,把他們賦值給物件,然後新增進陣列,對它們進行統一的操作。
如果用類+陣列的方式也可以做到 ,但並不高效。
來看看struct+vector是怎麼實現的:
.h
struct config
{
string name;
string id;
string price;
string description;
}
vector<config> item_config;
.cpp
config item;
item.name="bomb";
item.id="0";
item.price="100";
item.description="土製炸彈,威力一般,但很便宜";
item_config.push_back(item);//新增進victor
char name=item_config[0].name;//取
是不是很方便?如果用陣列+類 程式碼量就上去了 而且不用new 也不用->
- 訪問元素的方法
vec[i]
vec.at(i)
- 訪問索引值為 i 的元素的引用,以 at() 訪問會做陣列邊界檢查,如果訪問越界將會丟擲一個例外,這是與operator[]的唯一差異。vec.front()
- 回傳 vector 第一個元素的引用。vec.back()
- 回傳 vector 最尾元素的引用。
- 新增或移除元素的方法
vec.push_back()
- 新增元素至 vector 的尾端,必要時會進行儲存器配置。vec.pop_back()
- 刪除 vector 最尾端的元素。vec.insert()
- 插入一個或多個元素至 vector 內的任意位置。vec.erase()
- 刪除 vector 中一個或多個元素。vec.clear()
- 清空所有元素。
- 取得長度/容量
vec.size()
- 取得 vector 目前持有的元素個數。vec.empty()
- 如果 vector 內部為空,則傳回 true 值。vec.capacity()
- 取得 vector 目前可容納的最大元素個數。這個方法與儲存器的配置有關,它通常只會增加,不會因為元素被刪減而隨之減少。
- 重新配置/重設長度
vec.reserve()
- 如有必要,可改變 vector 的容量大小(配置更多的儲存器)。在眾多的 STL 實做,容量只能增加,不可以減少。vec.resize()
- 改變 vector 目前持有的元素個數。
- 迭代 (Iterator)
vec.begin()
- 回傳一個Iterator,它指向 vector 第一個元素。vec.end()
- 回傳一個Iterator,它指向 vector 最尾端元素的下一個位置(請注意:它不是最末元素)。vec.rbegin()
- 回傳一個反向Iterator,它指向 vector 最尾端元素的。vec.rend()
- 回傳一個Iterator,它指向 vector 的第一個元素。
相關推薦
cocos2d-x 3.0開發筆記---vector的使用
最近學習別人的原始碼 接觸到Vector這個模板類,發現很好用,特記錄下來,研究一下。 先來看看用法: std::vector<T> v;std是名稱空間 T表示物件的型別,可以是整型int ,字元string,結構struct,或者自定義的類; 我的理解是
cocos2d-x 3.0開發筆記---用progressTimer製作血槽
血條經常會用到,沒必要重複編寫浪費時間,這裡用最新版的API寫個,方便以後呼叫。 以下程式碼使用的引擎版本是cocos2d-x 3.0rc0 1.RADIAL Sprite *bgSprite = Sprite::create("red.png"); addChil
cocos2d-x 3.0開發筆記---物理引擎封裝 Physics深入學習
/** 建立一個body mass和moment為預設值 */ static PhysicsBody* create(); /** 建立一個質量為mass的body moment為預設值. */ static PhysicsBody* create(float mass);
Cocos2d-x 3.0 開發(十二)在CocoStudio中使用粒子掛載與曲線動畫
1、概述 最新版本的CocoStudio在修復之前Bug的同時,加入了新功能,粒子掛載和曲線動畫就是其中的亮點。下面我們就動手做個例子,先上圖: 2、粒子掛載 執行CocoStudio
Cocos2d-x 3.0開發(三)點選互動的四種處理
1、概述 遊戲也好,程式也好,只有能與使用者互動才有意義。手機上的互動大致可以分為兩部分:點選和輸入。其中點選更為重要,幾乎是遊戲中全部的互動。在Cocos2d-x 3.0中,更改了dispatc
Cocos2d-x 3.0 開發(七)在程式中處理cocoStudio匯出動畫
1、概述 使用cocoStudio可以方便的製作動畫,接下來的工作就是在我們的程式中使用製作的動畫。這篇中,我將使用程式將兩個動畫連線起來。有圖有真相:2、製作動畫 承接上一篇,我們再製作一
Cocos2d-x 3.0開發(十三)使用CocoStudio編輯幀事件並關聯到程式
1、概述 幀事件也是新加入的功能。這篇中我們將看到如何使用它。我們將上篇中製作的動畫稍加修改。有圖為證:2、用途與原理 首先介紹一下幀事件。正如其名:一個與幀相關聯的事件。 為什麼要這
cocos2d-x 3.0遊戲實例學習筆記《卡牌塔防》第一步---開始界面&關卡選擇
cocos2d-x 版本號 blog evel nbsp 不同 null menuitem obj /* 說明: **1.本次遊戲實例是《cocos2d-x遊戲開發之旅》上的最後一個遊戲,這裏用3.0重寫並做下筆記 **2.我也問過木頭本人啦。他說:
【Cocos2d-x 3.0】遊戲開發之android交叉編譯
plain edit 100% b2c 令行 sdk 自己的路 smi bin 作者:Senlern 轉載請註明,原文鏈接:http://blog.csdn.net/zhang429350061/article/details/37959489 在上
cocos2d-x-3.0 window+eclipse Android Project 環境與開發新手教程
今天閒來沒事,聽說最新cocos2d-x 出新版3.0。所以來學習一下。 大致參考官方教程:http://www.cocos2d-x.org/wiki/How_to_Build_an_Android_Project_with_Eclipse
Win7 64位中文旗艦版上Cocos2d-x 3.0的Android開發除錯環境架設
系統環境: Win764位中文旗艦版 各元件的版本: VS2012 Python2.7.6 x86 安裝步驟: 1. 預設安裝VS2012 2. 預設安裝Python 2.7.6,修改環境變數Path wmic ENVIRONMENT
Cocos2d-x 3.0 打造一個全平臺概念文件夾
android cocos2d www 全平臺 -s http 概念 1-1 style Cocos2d-x 3.0 打造一個全平臺概念文件夾http:// www.eoeandroid.com/thread-328055-1-1.html Cocos2d
cocos2d-x 3.0 final 移植 android
filename details blank each 連接 python 頭文件 osd 需求 準備工作 你僅僅要依照上一篇的 cocos2d-x 3.0 final 環境搭建 完畢就能夠了 1.編輯proj.android\jni\Android.mk,更改內
[Cocos2d-x v3.x]Mac OX 創建新的Cocos2d-x 3.0 項目
tor cor code none cocos 分享 oid folder left 文章內容來自於: http://cocos2d-x.org/wiki/How_to_Start_A_New_Cocos2D-X_Game Mac OS X 10.9 So
cocos2d-x 3.0 播放MP4視頻
獲取 cocos2 con selector lba 技術 root csdn 移除 猴子原創,歡迎轉載。轉載請註明: 轉載自Cocos2D開發網–Cocos2Dev.com,謝謝。原文地址: http://www.cocos2dev.com/?p=545非常久曾經寫的一
cocos2d-x 3.0 經常使用對象的創建方式
strong array 5% eat 自己 ++ -a 緩存 print cocos2d-x 3.0 中全部對象差點兒都能夠用create函數來創建,其它的創建方式也是有create函數衍生。 以下來介紹下create函數創建一般對象的方法,省得開發中常常忘記啥的。
cocos2d-x 3.0 Loading界面實現
int start popu tor controls lec -a ttf 提高 信息 這個世界每一天都在驗證我們的渺小,但我們卻在努力創造,不斷的在這生活的畫卷中留下自己的腳印。或許等到我們老去的那一天,老得不能動僅僅能靠回顧的那一天。你躺在輪椅上,不斷的回顧過
cocos2d-x 3.0的坑有哪些
命令行 工程文件 模擬 directory file run eclipse setup.py ports 問題一:setup.py 之後, ANT文件夾為什麽創建不成功? ANT文件夾要指定到bin以下,NDK和SDK則指定要根文件夾就可以 問題二:cocos
用 批處理 安裝,編譯 Cocos2d-X 3.0---Windows
align 而且 ble java jdk its 微軟雅黑 ndk files 本文檔適用: Win7 32bits(XP 32bits可能適用,未測試)開發目標環境 Android 軟件版本號 2014年5月下載,當時為較新版本號. 由於Cocos2d-X從
關於cocos2d-x 3.0的點擊交互處理
clipboard 3.0 static php 此外 eas -h con spl 轉自:http://blog.csdn.net/fansongy/article/details/12716671 1、概述 遊戲也好,程序也好,僅僅有能與