1、插入資料
void push_back(const t& x)
在當前vector尾部插入x,如果容量不夠擴大二倍。
iterator insert(iterator pos, const t& x)
在pos位置插入元素x
2、容量相關
size_t capacity()
返回當前vector的容量(size+剩餘容量)
size_t size()
返回當前vector的元素個數
void resize(size_t n, const t& val = t())
改變當前vector的size,如果n>size則大於部分初始值為val。(capacity的大小始終保持不變)
void reserve(size_t n)
改變當前vector的capacity,如果n
3、刪除資料
void pop_back()
如果vector不為空,刪除當前vector的最後乙個元素
iterator erase(iterator pos)
刪除pos位置的元素
4、運算子過載
t& operator(size_t pos)
運算子過載,支援使用下標訪問vector
#include
#include
#include
using namespace std;
namespace myvector
iterator end()
//預設建構函式
vector()
:start(nullptr)mgramtd
, finish(nullptr)
, end_of_storage(nullptr)
{}//容量
size_t capacity()
size_t size()
void reserve(size_t n)
}void resize(size_t n, const t& val = t())
}} //檢查空間
void check_capacity()
}t& operator(size_t pos)
//插入
void pushmgramtd_back(const t& x)
iterator insert(iterator pos, const t& x)
//插入資料
*pos = x;
finish++;
return pos;
} //刪除資料
void pop_back()
iterator erase(iterator pos)
--finish;
return pos;
} //析構函式
~vector()
private:
iterator start;
iterator finish;
iterator end_of_storage;
};}void test1()
void test2()
1、在vector的介面中,使用insert插入資料時可能導致迭代器失效,具體如下
2、刪除操作導致迭代器失效
3、迭代器失效的解決辦法
1)在vector中,解決迭代器失效的辦法是在插入、刪除等可能會導致迭代器失效的地方,返回新的迭代器來解決迭代器失效。
vector的模擬實現
上一節部落格講述了vector常見介面的使用,今天主要是對vector這些介面進行模擬實現,下面是相關 include include includeusing namespace std namespace ty iterator end citerator cbegin const citera...
vector的模擬實現
最近學習了vector的使用,下面對vctor進行了模擬實現,如有不足請指出 include include include using namespace std template class t class vector 大小 size t size const 容量 size t capaci...
類模板模擬實現STL中Vector
vector 向量 c 中的一種資料結構,確切的說是乙個類.它相當於乙個動態的陣列,當程式設計師無法知道自己需要的陣列的規模多大時,用其來解決問題可以達到最大節約空間的目的.用法 1.變數宣告 例 宣告乙個int向量以替代一維的陣列 vector a 等於宣告了乙個int陣列a,大小沒有指定,可以動...