#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...