vector的認識:
vector是乙個大小可以改變的序列式容器,也稱為陣列。也就是說vector是一段連續的空間來儲存資料。
同樣vector也有一系列的介面,我們要熟練使用vector的介面,首先要理解vector介面的底層實現,才能靈活運用。
vector主要也就是實現儲存型別t的增刪改查,同樣,為了方便實現這些操作,vector底層運用了三個迭代器:_start指向陣列的首部,_end指向陣列中資料的下乙個位置,_end_of_storage指向陣列中最大容量的位置。
下面是其實現:
模擬實現
#include
#include
using
namespace std;
template
<
class
t>
class
vector
~vector()
}vector
(const vector
& v)
void
swap
(vector
& v)
vector
&operator
=(vector v)
void
resize
(size_t n,
const t& val =t(
))if(n >
capacity()
)while
(_finish != _start + n)
}void
reverse
(size_t n)
}void
push_back
(const t& val)
*_finish = val;
++_finish;
}void
pop_back()
void
insert
(iterator pos,
const t& x)
iterator end = _finish -1;
while
(end >= pos)
*pos = x;
++_finish;
}void
erase
(iterator pos)
--_finish;
} size_t size()
const
size_t capacity()
const
t&operator
(size_t pos)
const
const t&
operator
(size_t pos)
const
iterator begin()
iterator end()
private
: iterator _start;
iterator _finish;
iterator _end_of_storage;};
void
test1()
cout << endl;
}int
main()
system
("pause");
}
c vector(模擬實現)
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 nullp...
模擬實現string類
include using namespace std include class string string string a 2 為什麼要用 優點在哪 string void print string operator const string a string operator const s...
模擬實現日期類
日期類好久沒寫了,重溫一下以前的知識。寫日期類需要注意的有 1 日期減日期的計算 2 關於輸出輸入過載的友元函式宣告 3 建構函式的條件判斷 4 拷貝建構函式的自我賦值判斷 實現 如下 include using namespace std class date else 拷貝建構函式 date c...