#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 表...