自己模擬實現的list
#include
#include
#include
using
namespace
std;
//模擬實現list(雙向帶頭節點鍊錶)
//定義乙個list節點
template
struct listnode
};template
struct myiterator
//注意,迭代器只是為了訪問容器,這裡不能寫析構
//也不需要寫拷貝構造,這裡需要的是淺拷貝,使用預設的
ref operator*()
ptr operator->()
//這裡的返回值用迭代器接收是因為,但引數的建構函式支援型別轉化
myiterator operator++()//前置++
myiterator operator++(int)//後置++
myiterator operator--()//前置--
myiterator operator --(int)//後置--
bool
operator==(const myiterator& it )const
bool
operator!=(const myiterator& it)const
node *_node;
};template
class mylist
~mylist()
iterator begin()
iterator end()
//const版本
const_iterator begin()const
const_iterator end() const
iterator insert(const iterator& pos,const t & val )
iterator erase(const iterator & pos)
node *cur=pos._node;
node *pre=cur->_prev;
node *next=cur->_next;
pre->_next=next;
next->_prev=pre;
delete cur;
return iterator(next);
}void pushfront(const t& val)
void popfront()
void pushback(const t & val)
void popback()
protected:
node *_head;
};
#include "my_list.cpp"
//實現乙個列印鍊錶的函式
react篇之高階元件 HOC
高階元件 簡單來說,高階元件可以看做乙個函式,且該函式接受乙個元件作為引數,並返回乙個新的元件。我在之前的部落格 閉包和類 中提到乙個觀點,物件導向的好處就在於,易於理解,方便維護和復用。其實高階元件,也是為了更好地復用之前的元件。它可以理解為,基礎元件通過包裹處理,生成乙個適應某些場景的元件。它可...
MySQL效能優化之高階篇
4.1 索引是什麼,建立索引的原因 索引用於快速找出在某個列中有一特定值的行,不使用索引mysql必須從第一條記錄開始讀完整個表,直到找出相關的行,表越大查詢資料所花費的時間就越多,如果表中查詢的列有乙個索引,mysql能夠快速到達乙個位置去搜尋資料檔案,而不必檢視所有資料,那麼將會節省很大一部分時...
Docker資料卷之高階篇
容器之間資料共享,修改同步 配置如下 type 指定掛載方式,我們這裡用到的是 volume 其實還可以有 bind 和 tmpfs volunme 這個目錄只有docker可以管理,其他程序不能修改。如果想持久儲存容器的 應用資料,volumes是 docker 推薦的掛載方式。bind 容器內的...