1. 程式人生 > >iterator迭代器 || begin()、end()返回值型別

iterator迭代器 || begin()、end()返回值型別

迭代器是廣義上的指標,事實上,它可以是指標,也可以是一個對其執行類似指標的操作——如解除引用(如operator*())和遞增(如operator++()) ——的物件。

通過將指標廣義化為迭代器,讓STL能夠為各種不同的容器類(包括哪些簡單指標無法處理的類)提供統一的介面。每個容器類都定義了一個合適的迭代器,該迭代器的型別是一個名為iterator的typedef,其作用域為整個類。

#include <iostream>
#include <vector>
using namespace std;

int main()
{
	vector<int> scores(5);
	for(int i=0;i<5;i++)
          cin>>scores[i];
	
        //int *pd=scores.begin();                 //Error:不存在從"std::_Vector_iterator<std::Vector_val<int,std::allocator<int>>>"到"int *"的適當轉換函式
	vector<int>::iterator pd = scores.begin();  	//auto pd=scores.begin()同樣可行 
	*pd = 22.3;
	cout << *pd << endl;
	++pd;
	cout << *pd << endl;

	return 0;
}