c vector(模擬實現)

2021-10-03 01:36:12 字數 2310 閱讀 1950

#include

using

namespace std;

namespace bit

public

:vector()

:start

(nullptr),

finish

(nullptr),

end_of_sorage

(nullptr

)vector

(size_t n,

const t& value =t(

)):start

(nullptr),

finish

(nullptr),

end_of_sorage

(nullptr)}

template

<

class

inputiterator

>

//由前後指標來建立

vector

(inputiterator first, inputiterator last)

:start

(nullptr),

finish

(nullptr),

end_of_sorage

(nullptr)}

~vector()

public

:int

size()

intcapacity()

bool

empty()

void

swap

(vector

& v)

void

reserve

(size_t new_capacity)

// 擴容

}delete

start;

//刪除原有空間

start = newv;

//指向新空間

finish = start + old_size;

end_of_sorage = start + new_capacity;}}

void

resize

(int new_size,

const t& value =0)

//擴充大小

if(new_size >

capacity()

) iterator p = finish;

finish = start + new_size;

//指向新大小

while

(p != finish)

//填充value

}public

:void

push_back

(const t &c)

public

:typedef t* iterator;

iterator begin()

iterator end()

public

: iterator insert

(iterator pos,

const t &x)

//在pos位置前插入x

t* p = finish;

for(

; p != pos; p--

)*p = x;

finish++

;return pos;

} iterator erase

(iterator pos)

//刪除pos位置值

finish--

;return pos;

}private

: t* start;

//指向最開始

t* finish;

//指向最後乙個元素的下乙個位置

t* end_of_sorage;

//指向最大容量的下乙個位置};

}int

main()

; bit::vector<

int>

v1(ar, ar +6)

; bit::vector<

int>v2;

bit::vector<

int>v3(

10,'a')

; v1.

erase

(v1.

end()-

1); v1.

insert

(v1.

begin()

,0);

v1.swap

(v3)

;for

(int i =

0; i < v1.

size()

; i++

)return0;

}

C vector類的模擬實現

vector的認識 vector是乙個大小可以改變的序列式容器,也稱為陣列。也就是說vector是一段連續的空間來儲存資料。同樣vector也有一系列的介面,我們要熟練使用vector的介面,首先要理解vector介面的底層實現,才能靈活運用。vector主要也就是實現儲存型別t的增刪改查,同樣,為...

模擬實現Spring IOC

通過在類上標註 registration 註冊進容器,injection從容器注入物件 容器類 public class springcontainer else bean.setbeanclass c mappropsmap new hashmap 處理注入屬性 field props c.get...

模擬實現strcmp

函式簡介 原型 int strcmp const char s1,const char s2 所在標頭檔案 string.h 功能 比較字串s1和s2。一般形式 strcmp 字串1,字串2 說明 當s1注意不是 1 當s1 s2時,返回值 0 當s1 s2時,返回正數 注意不是1 如下 int m...