Boost 是 C++ 準標準庫,安裝後可直接使用 boost::array 等固定大小容器:
#include
#include
using namespace std;
int main() {
boost::array arr = {1,2,3,4,5,6,7,8,9,10};
for (auto it = arr.begin(); it != arr.end(); ++it)
cout << *it << endl;
return 0;
}
myvector 封裝動態數組。T* p(數據指針)、n(容量)、realn(實際大小)。push_back、find、change、del、insert、operator[]、show 等接口。+1 分配新內存、拷貝、釋放舊內存(教學簡化,實際常用倍增)。template
void myvector::push_back(T val) {
if (!p) { p = new T; *p = val; realn = n = 1; }
else {
T* tmp = new T[n + 1];
copy(p, p + n, tmp);
tmp[n] = val;
delete[] p; p = tmp;
++realn; ++n;
}
}
演示 int、double、char 實例化,以及巢狀向量 myvector 用法。
template class Node { public: T t; Node* pNext; };
template class List {
Node* pHead;
// add, show, find, change, getnum, deletet, sort, deletesame, clear, rev, insert, merge
};
add:尾插法。sort:冒泡排序交換節點數據(教學演示,實際應用合併排序)。deletesame:有序鏈表去重。rev:迭代反轉鏈表。merge:尾部連接另一鏈表。包含去重、排序、反轉、插入、合併、清空等完整驗證流程。
hashnode 存儲 key、value、cn(查找次數)。Hash 類:固定大小 10,哈希函數 key % n。init 批量構建,find 直接定位,isin 驗證键值對。本文從庫使用到手寫容器,涵蓋順序表、鏈表、哈希表三大基礎結構的 C++ 模板實現,適合數據結構入門鞏固。代碼雖簡略但結構清晰,可作為進一步優化(擴容策略、迭代器、衝突處理、智能指針管理)的基礎框架。