vector容器的實現 stack容器介面卡的實現

2021-09-11 16:56:11 字數 1741 閱讀 7030

功能:像容器一樣存放各種型別的物件,是乙個存放任意型別的動態陣列,能夠增加和壓縮資料;

vector是乙個類模板而不是一種資料型別,故對它的定義,需要指定型別;

優點:當程式設計師無法知道自己需要的陣列的規模多大時,用其來解決問題可以達到最大節約空間的目的。

**實現:

​//vector容器實現(不定長順序表)

template class vector

~vector()

void push_back(const _ty& val) //尾插

parr[cursize++] = val;*/

} void insert(int pos,const _ty& val) //任意位置插入

if(full())

int index = cursize;

for(index;index>pos;index--)

parr[pos] = val;

cursize++;

} void pop_back() //尾刪

void erase(int pos) //刪除任意位置

if(empty())

int index = pos;

for(index;indexelem;

for(int i = 0;i<10;i++)

elem.show();

return 0;

}​

stack是乙個容器介面卡,預設的stack是基於deque實現的,但是可以顯式的讓其用vectorlist實現。

stack標頭檔案中:

stack容器介面卡基於預設為vector容器的**實現:

#include //vector容器實現(不定長順序表)

template class vector

~vector()

void push_back(const _ty& val)

parr[cursize++] = val;*/

} void insert(int pos,const _ty& val)

if(full())

int index = cursize;

for(index;index>pos;index--)

parr[pos] = val;

cursize++;

} void pop_back()

void erase(int pos)

if(empty())

int index = pos;

for(index;indexclass container = vector>

class stack

~stack(){}

void push(const _ty& val)

void pop()

_ty top()

bool empty()

private:

container<_ty> c; //相當於vector<_ty> c;

};int main()

實現vector容器

在c stl中 每一種容器都有其自己對應的迭代器實現。迭代器也成為了演算法和容器之間的橋梁。今天先模擬一下vector 容器,以及對應的迭代器。一 vector實質是可變長的陣列 空間連續 所謂的可變長其實是偽可變長。為了實現可變長,vector的工作實質 1 初始分配空間大小時,分配按實際需求分配...

容器vector部分功能的實現

這是c primer書中的例題。實現了vector容器的部分功能。具體內容在第四版的18.1節。要考慮到vector的記憶體分配策略。下面分別是用allocator 注釋的部分 和new,delete實現的。1.allocator allocate size t t 分配原始的未構造記憶體以儲存t個...

實現序列式容器 vector

概述 在stl諸多容器中vector一定是使用率最高的了,它使用和資料結果上與array相類似,兩者唯一差別在於 array是靜態空間,而vector是可變空間。因此通常將vector看作可變陣列。由於vector方法較多,在主要此討論實現vector中要注意的幾個點 對於vector而言維護的是一...