封裝了vector
的資料結構,和push_back()
,capacity()
,size()
方法,內嵌了iterator
迭代器類
#include
// #include
using
namespace std;
namespace ministl
~vector()
// 拷貝建構函式
// 賦值運算子過載函式
void
push_back
(const t& val)
else
delete
_data;
_data = temp;}}
_data[_size-1]
= val;
}int
size()
const
intcapacity()
const
t&operator
(int index)
const t&
operator
(int index)
const
// 巢狀類:類中定義的類
class
iterator
t&operator*(
) t*
operator
->()
//iterator operator++()
bool
operator==(
const iterator& it)
const
bool
operator!=(
const iterator& it)
const
// 所有操作符除了字首字尾還有復合賦值+= -= *=之外,不會改變原來下變數值
iterator operator+(
int n)
const
iterator operator-(
int n)
const
iterator operator++(
) iterator operator++(
int)
iterator operator--(
) iterator operator--(
int)};
iterator begin()
iterator end()
};}using
namespace ministl;
class
student
;ostream&
operator
<<
(ostream& os,
const student& s)
intmain()
cout <<
sizeof
(vec)
<< endl;
/* for(int i=0;ivector<
int>
::iterator it = vec.
begin()
;while
(it != vec.
end())
cout << endl;
for(
auto n:vec)
cout << endl;
vector vec1;
vec1.
push_back()
; vec1.
push_back()
; vec1.
push_back()
;
vector
::iterator it1 = vec1.
begin()
; cout <<(*
(it1+2)
).name << endl;
while
(it1 != vec1.
end())
cout << endl;
// int n = 10;
// n+1
// ++n //
// n++ //
}
STL原始碼之實現乙個簡易的Vector容器
這裡需要的基礎知識主要是類模板和函式模板,以及乙個c 記憶體分配的技術allocator類,它提供可感知型別的記憶體分配,這個類支援乙個抽象介面,以分配記憶體並隨後使用該記憶體儲存物件。使用allocator類,首先應用allocator類建立乙個allocator物件,然後使用該物件你可以分配記憶...
STL 簡單 vector 的實現
stl 簡單 vector 的實現 我用vs2013寫的程式 github vector版本的 位於 我是照著侯捷老師的 stl原始碼剖析 做的cghstl,現在才看到第三章,覺得這本書的編排非常適合自學。第一章講解空間配置器,這是stl最基礎的部件,沒什麼好說的。第二章講解迭代器,老師舉了單向鍊錶...
實現乙個STL的list容器
封裝了list的資料結構,和push back push front pop back pop front size 方法,內嵌了iterator迭代器類,還寫了for each 和accumulate 模板演算法 include include include include using name...