W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
我們這里分別對(duì)CAVector、CAList、CADeque、CAMap的常用函數(shù)進(jìn)行說明:
CAVector<CAObject*> ca_vector;
//增
ca_vector.insert(size_t index, CrossApp::CAObject *object);//插入一個(gè)元素到指定位置
ca_vector.pushBack(CrossApp::CAObject *object);//在list末尾插入一個(gè)元素
//刪
ca_vector.erase(ca_vector.begin());//刪除指定位置的元素
ca_vector.erase(ca_vector.begin(),ca_vector.end());//刪除指定范圍的元素
ca_vector.popBack();//刪除最后一個(gè)元素
ca_vector.clear();//刪除所有元素
//查
ca_vector.empty();//是否含有元素
ca_vector.size();//返回vector中的元素個(gè)數(shù)
ca_vector.end();//返回末尾的迭代器
ca_vector.begin();//返回指向第一個(gè)元素的迭代器
ca_vector.front();//返回第一個(gè)元素
ca_vector.back();//返回最后一個(gè)元素
//遍歷
for (int i = 0; i < ca_vector.size(); i++) {
CAObject* obj = ca_vector.at(i);
}
CAList<CAObject*> ca_list;
//增
ca_list.insert(size_t index, CrossApp::CAObject *object);//插入一個(gè)元素到指定位置
ca_list.pushBack(CrossApp::CAObject *object);//在list末尾插入一個(gè)元素
ca_list.pushFront(CrossApp::CAObject *object);//在list頭部添加一個(gè)元素
//刪
ca_list.erase(ca_list.begin());//刪除指定位置的元素
ca_list.erase(ca_list.begin(),ca_list.end());//刪除指定范圍的元素
ca_list.popBack();//刪除最后一個(gè)元素
ca_list.popFront();//刪除第一個(gè)元素
ca_list.clear();//刪除所有元素
//查
ca_list.size();//返回list中的元素個(gè)數(shù)
ca_list.begin();//返回指向第一個(gè)元素的迭代器
ca_list.end();//返回末尾的迭代器
ca_list.front();//返回第一個(gè)元素
ca_list.back();//返回最后一個(gè)元素
//遍歷
std::list<CAObject*>::iterator it;
for (it = ca_list.begin(); it != ca_list.end(); it++) {
CAObject* obj = (CAObject*)*it;
}
CADeque<CAObject*> ca_deque;
//增
ca_deque.insert(size_t index, CrossApp::CAObject *object);//插入一個(gè)元素到指定位置
ca_deque.pushBack(CrossApp::CAObject *object);//在list末尾插入一個(gè)元素
ca_deque.pushFront(CrossApp::CAObject *object);//在list頭部添加一個(gè)元素
//刪
ca_deque.erase(size_t index);//刪除指定位置的元素
ca_deque.erase(ca_deque.begin()+1, ca_deque.end()-2);//刪除指定范圍的元素
ca_deque.popBack();//刪除最后一個(gè)元素
ca_deque.popFront();//刪除第一個(gè)元素
ca_deque.clear();//刪除所有元素
//查
ca_deque.size();//返回deque中的元素個(gè)數(shù)
ca_deque.begin();//返回指向第一個(gè)元素的迭代器
ca_deque.end();//返回末尾的迭代器
ca_deque.front();//返回第一個(gè)元素
ca_deque.back();//返回最后一個(gè)元素
ca_deque.at(size_t index);//返指定位置的元素
//遍歷
for (int i = 0; i < ca_deque.size(); i++) {
CAObject* obj = ca_deque.at(i);
}
CAMap<int, CAObject*> ca_map;
//增
ca_map.insert(int key, CrossApp::CAObject *object);//增加一個(gè)元素鍵值對(duì)
//刪
ca_map.erase(int key);//通過key刪除元素
ca_map.clear();//刪除所有元素
//查
ca_map.empty();//判斷mpa是否是空
ca_map.contains(int key);//是否有這個(gè)key返回bool
ca_map.getValue(int key);//根據(jù)key返回對(duì)應(yīng)的Value
std::vector<int> vec = ca_map.getKeys();//返回包含所有key的vector
//遍歷
std::map<int, CAObject*>::iterator it;
for (it = ca_map.begin(); it != ca_map.end(); ++it) {
int key = it->first;
CAObject* obj = it->second;
}
我們以CAVector為例子做一個(gè)內(nèi)存管理的實(shí)驗(yàn),看在添加和移除元素時(shí),CAObject的引用計(jì)數(shù)是否發(fā)生了變化。CAObject* obj = new CAObject();
CAVector<CAObject*> ca_vector;
//打印引用計(jì)數(shù)
CCLog("count:%d",obj->retainCount());
//把obj添加到vector尾部
ca_vector.pushBack(obj);
//打印引用計(jì)數(shù)
CCLog("count:%d",obj->retainCount());
//把obj移除
ca_vector.eraseObject(obj);
//打印引用計(jì)數(shù)
CCLog("count:%d",obj->retainCount());
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: