參考:
stl中的迭代器有五種型別,不同的容器可支援不同的迭代器
1.vector,支援隨機迭代器
#include
#include
#include
using
namespace
std;
int main()
cout
<< endl;
}cout
<< endl;
vector
::iterator iter1=charvector.begin();;
//iter1 += 2;//vector支援隨機迭代器,可遞增n位或遞減n位
//cout << *iter1;
cout
<< iter1[2];//同上兩行**得到的結果一樣
cout
<< endl;
system("pause");
return
0;}
2.deque,支援隨機迭代器
#include
#include
#include
using
namespace
std;
//deque也支援隨機迭代器
int main()
cout
<< endl;
}system("pause");
return
0;}
3.list,支援雙向迭代器
#include
#include
#include
using
namespace
std;
//list並不支援隨機迭代器,支援雙向迭代器,不可遞增或遞減n位
int main()
cout
<< endl;
list
::iterator start = charlist.begin();
charlist.insert(++start, 5, 'x');
for (iter = charlist.begin(); iter != charlist.end(); iter++)
cout
<< endl;
list
::iterator iter1=--charlist.end();//list容器提供雙向迭代器,可前置自減或後置自減
cout
<< *iter1;
cout
<< endl;
system("pause");
return
0;}
4.自適應容器stack和queue不支援迭代器。
#include
#include
#include
#include
using
namespace
std;
int main()
cout
<< endl;
int size = intstack.size();
for (int x = 0; x < size; x++)
system("pause");
return
0;}
#include
#include
#include
#include
using
namespace
std;
int main()
cout
<< endl;
int size = intqueue.size();
for (int x = 0; x < size; x++)
system("pause");
return
0;}
迭代器的使用
先看下面的例子 vector 的元素刪除 話頭從 container 的元素刪除說起。jyhuang 觀察到 如果 vector 或 list 的最後乙個元素符合刪除條件,程式會有問題 他給我這樣乙個片段 template void print elements t elem void pfi in...
迭代器的使用
迭代器 iterator 有時又稱游標 cursor 是程式設計的軟體設計模式,他是專門為訪問容器而設計的一種資料結構,他實際是對訪問容器這一操作進行了封裝。也有一種說法是迭代器是指標的封裝。和智慧型指標有點相似。迭代器是一種物件,他用來遍歷標準模板庫容器中的部分或全部元素,每個迭代器物件代表容器中...
使用迭代器
建立迭代器最常用的方法是對 ienumerable 介面實現 getenumerator 方法,例如 c 複製 public system.collections.ienumerator getenumerator getenumerator 方法的存在使得型別成為可列舉的型別,並允許使用 fore...