list之高階篇

2021-08-20 19:53:56 字數 1587 閱讀 3528

自己模擬實現的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 容器內的...