用陣列實現vector

2021-06-10 01:20:57 字數 1224 閱讀 2075

#include using namespace std;

//用陣列實現vector

typedef int t;

class vector

delete data;

data = tmp;

capacity *= 2;

}public:

explicit vector(int size = 5):sz(),capacity(size)

~vector()

friend ostream& operator<<(ostream& o,const vector &v)

return 0;

} //插入乙個元素到集合

vector& insert(const t& d)

data[sz++] = d;

return *this;

*/ insert(d,sz); }

//在指定的位置插入元素

vector& insert(const t& d,int pos)

for(int i = sz; i > pos; i--)

data[pos] = d;

sz++;

return *this;

}//刪除指定位置的元素

bool erase(int pos)

for(int i = pos; i< sz - 1; i++)

sz--;

return true; }

//修改指定位置的元素

bool set(const t& d,int pos) }

//查詢集合中是否存在指定的元素,返回這個元素的下標,如果未能找到

int find(const t& d)

}return -1;

} //刪除所有等於d的資料元素

void remove(const t& d) }

//源**不全,無法得知out_of_range 到底是怎麼定義的

//返回指定下表元素的引用

t& at(int pos) throw(out_of_range)

return data[pos];

} //下標運算

t& operator(int pos)

//返回集合中的元素個數

int size() };

int main()

cout << endl;

}

用vector實現乙個變長陣列

所謂陣列,有這樣的性質 c語言中的陣列,一旦長度定義,就不能改變。有時候需要動態增加陣列長度,而且想保留上述性質,這時候就可以用vector。vector模擬了c語言中陣列的操作,比如取值,下標越界未定義等。最重要的,它支援size 和resize 方法,可以獲得陣列長度,以及擴充套件陣列長度。這樣...

C 動態陣列vector實現

最近在做將matlab 轉化為c c 的工作,在實際應用時,發現動態陣列非常重要,我在學習的時候也踩了許多坑,這篇就當做一篇踩坑筆記,希望讀者能夠繞開我踩過的坑,順利應用動態陣列。其實在c語言中,都是靜態陣列,即需要在定義的時候就定下該陣列的長度,然而這在實際的應用中,很大的一部分情況是我們並不知道...

vector實現二維陣列

用vector實現二維陣列的好處 1 陣列的越界可能會引起程式的崩潰,動態性不好,包括動態改變大小,動態申請。2 vector提供了operator函式,可以像陣列一樣的操作,而且還有邊界檢查,動態改變大小。簡單說下c 構建動態的二維陣列 int p p new int 10 注意,int 10 表...