vector內部的實現1

2022-05-15 22:33:19 字數 2300 閱讀 7708

寫vector的內部方法

1 #include2

using

std::vector;3//

寫乙個動態記憶體45

classca9

ca();

10};

11 template

12class

cstack13;

22 template

23void cstack::pop()

2427

28 template

29 cstack::cstack()

3033

34 template

35void cstack::push(t const&val)

3639

intmain()

40

寫乙個位元組的類對自己的類進行加工封裝函式 實現vector內部封裝的效果 進而實現所需要的內容

1

#pragma once

2 template3

class

myvector4;

35 template36

void myvector::myvector()//

無參構造

3742

43 template44

void myvector::~myvector()//

析構函式 清除物件

4548 template49

void myvector::clear

5058

}59 template60

void myvector::myvector(int n)//

n個有t的預設構造的構造物件 構造進這個容器

61 68

else

6973}74

75 template76

void myvector::myvector(int n, t const& elem)//

用n個elem物件來構造這個容器 &來增加傳遞效率

7784

else

8592}93

}94 template95

void myvector::myvector(myvector const&other)

96106

}107 template108 size_t myvector::size() const

//返回容器的長度

109112 template113 size_t myvector::capacity() const

//返回容器大小

114117 template118

bool myvector::empty() const

//判斷容器是否為空

119123 template124

bool myvector::operator==(myvector const& srcvector) const

//判斷容器是不是相等

125133

return

true

;134

}135 template136

bool myvector::operator==(myvector const& srcvector) const

//判斷容器是不是相等

137140 template141

void myvector::assign(int n, t const& elem)//

和帶參構造類似 對容器進行賦值

142151

}152

153void myvector::swap(myvector &srcvector)

154167 template168 t cmyvector::at(int index)//

唯一的會主動拋異常的函式

169174

175 template176 t cmyvector::operator(int index)//

這個應該出錯就出錯 無法出來 按照給的要求來

177180 template181 t myvector::back()

182185

186 template187 t myvector::front()

188191

192 template193 t myvector::operator(int

index)

194197 template198

void myvector::push_back(t const&elem)

199211 pbuff[len++] =elem;

212 }

vector的內部實現

假定你現在已經能熟練使用vector,如果你很好奇vector背後是怎麼實現的,那麼本文或許對你能有所幫助。vector代表了c 的動態陣列,大小是動態可增長的。你不必考慮自己手動分配或釋放記憶體,也不必擔心記憶體洩漏,vector幫你做了這一切。vector的使用很簡單,但是要做到有效率,沒那麼容...

STL基礎1 vector的實現

本文的 主要實現了vector 的 1.基本操作如 push back pop back size back 2.操作符的過載如 include using namespace std templateclass myvector 複製建構函式 myvector const myvector rhs...

vector的clear操作的內部過程

最近在論壇看到乙個提問帖子,問題是vector中儲存了物件的指標,呼叫clear後這些指標如何刪除?class test test int main 同時最近又看到一道面試題 對於stl中的vector呼叫clear時,內部是如何操作的?若想將其記憶體釋放,該如何操作?針對以上兩個問題,我們追蹤一下...