初識STL 迭代器List

2021-08-01 07:43:35 字數 1348 閱讀 4703

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