vc 簡單的vector動態陣列實現

2022-06-27 13:12:07 字數 2640 閱讀 7262

1

#ifndef __myvector__

2#define __myvector__

3 #include 4

#define success 1 //

成功

5#define errors -1 //

失敗

6#define malloc_error -2 //

申請記憶體失敗

7#define index_error -3 //

錯誤的索引號

8 template9

class

vector10;

35 template36 vector::vector(void) //

無參建構函式

37 :m_dwinitsize(100

),38 m_dwincrement(5

),39 m_dwindex(0)40

45 template46 vector::vector(dword dwsize) //

有參建構函式

47:m_dwinitsize(dwsize),

48 m_dwindex(0

),49 m_dwincrement(5)50

55 template56 vector::~vector() //

析構函式

5765 template66 dword vector::at(dword dwindex,out tele* pele) //

根據給定的索引得到元素

6774

return

success;75}

76 template77 bool vector::expand() //

容器滿了需要擴充

7892 template93 dword vector::push_back(tele element) //

將元素儲存到容器最後乙個位置

94103

}104 copymemory(&m_pvector[m_dwindex],&element,sizeof

(tele));

105 m_dwindex++;

106 m_dwlen--;

107return

success;

108}

109 template110 void vector::pop_back() //

刪除最後乙個元素

111119 template120 dword vector::insert(dword dwindex, tele element) //

向指定位置新增乙個元素

121127

if(dwindex ==m_dwindex)

128132

if(m_dwlen <=0 || m_dwindex >= m_dwinitsize) //

判斷是否夠插入新元素

133

136//

0 1 2 3 4 5 6 7

137//

把要插入的索引的位置後面的元素後移

138for(dword i = m_dwindex;i>dwindex;i--)

139 copymemory(&m_pvector[i],&m_pvector[i-1],sizeof

(tele));

140 copymemory(&m_pvector[dwindex],&element,sizeof

(tele));

141 m_dwindex++;

142 m_dwlen--;

143return

success;

144}

145 template146 dword vector::capacity() //

返回在不增容的情況下,還能儲存多少元素

147150 template151 void vector::clear() //

清空所有元素

152161 template162 bool vector::empty() //

判斷vector是否為空 返回true時為空

163169 template170 dword vector::erase(dword dwindex) //

刪除指定元素

171180 template181 dword vector::size() //

返回vector元素數量的數量

182185

186#endif

VECTOR動態陣列

vector是同一種型別的物件的集合 vector的資料結構很像陣列,能非常高效和方便地訪問單個元素 vector是乙個類模板 class template 要使用vector必須包含相關標頭檔案 include using std vector 注 空間是連續的 空間是可以擴充套件的 貌似是矛盾的...

Vector 動態陣列

容器 順序式容器 vecto 動態陣列,從末尾快速插入刪除,直接訪問任何元素 list 雙鏈表,從任何地方快速插入刪除 deque 雙向佇列,從前面與後面快速插入刪除,直接訪問任何元素 priority queue 優先佇列,最高優先順序元素總是最先出列 stack 棧,後進先出 先進後出 關聯式容...

vector 動態陣列

含義v.push back 在vector最後新增乙個元素 v.pop back 移除最後乙個元素 v.insert 插入元素到vector中 v.back 返回最末乙個元素 v.begin 返回第乙個元素的迭代器 v.end 返回最末元素的迭代器 譯註 實指向最末元素的下乙個位置 v.erase ...