stl有6大元件
迭代器(iterator)是一種物件,它能夠用來遍歷標準模板庫容器中的部分或全部元素,每個迭代器物件代表容器中的確定的位址。迭代器修改了常規指標的介面,所謂迭代器是一種概念上的抽象:那些行為上像迭代器的東西都可以叫做迭代器。迭代器提供一些基本操作符:*、++、==、!=、=。這些操作和c/c++「操作array元素」時的指標介面一致。
源**
#pragma once
#include
using
namespace
std;
#include
template
struct listnode
};template
struct listiterator
bool
operator==(const self& x)
bool
operator!=(const self& x)
ref operator*()
ptr operator->()
self& operator++() //前置++
self operator++(int) //後置++
self operator--(int)//後置--
self& operator--()//前置--
};template
class list
~list()
void clear()
_head = _head->_next;
_head = _head->_prev;
}iterator begin()
constiterator begin() const
iterator end()
constiterator end() const
void pushbcak(const t& x)
void pushfront(const t& x)
iterator find(const t& x)
++cur;
}return _head;
}iterator erase(iterator pos)
iterator insert(iterator pos, const t& x)
void print()
cout
<< endl;
}protected:
node* buynode(const t& x)
protected:
node* _head;
};void testlist()
迭代器模擬實現STL中的list
list中的迭代器類似與智慧型指標的作用,它是將指向鍊錶指向結點的指標管理起來。在stl中的list是帶頭結點的雙向迴圈鍊錶,這樣的設計很巧妙,可以讓我們的插入和刪除元素的時候減少一些需要考慮的邊界問題。要模擬實現stl中的list我們首先得模擬實現迭代器,設計成用來管理指向list中結點的指標。因...
初識迭代器 C Iterator
一 初識迭代器 iterator類 簡寫為 iter 1 由來,我們知道string類 vector類的物件,可以通過下標運算來訪問元素 還有另外一種更通用的機制 迭代器。不管你是用到 vector 還是list 或 map類你總離不開迭代器的。2 所有標準庫容器都可以使用迭代器,但是其中只有幾種容...
list集合,迭代器
list是乙個訪問有序的集合,它是乙個帶有索引的集合,通過索引就可以精確的操作集合中的元素 與陣列的索引是乙個道理 list集合中可以有重複的元素。迭代器一般插入元素會有併發異常,listiterator可以解決這個問題。listiterator listiterator list.listiter...