前閉後開區間

任何一個STL算法,都須要得到由一對迭代器(泛型指針)所標識的區間,用以表示操做範圍。這一對迭代器所標示的是個所謂的前閉後開區間,以[first,last)表示。也就是說,整個實際範圍從first開始,知道last-1。迭代器last所指的是「最後一個元素的下一位置」。這種偏移一格的標示法,帶來了許多方便,例以下面兩個STL算法的循環設計,就顯得乾淨利落:算法

 1 template <class InputIterator,classT>
 2 
 3 InputIterator find(InputIterator first,InputIterator last,const T& value)
 4 
 5 {
 6 
 7        while(first != last && *first != value)
 8 
 9               ++first;
10 
11        returnfirst;
12 
13 }
14 
15  
16 
17 template <class InputIterator,class Function>
18 
19 Function for_each(InputIterator first,InputIterator last,Function f)
20 
21 {
22 
23        for(;first != last;++first)
24 
25               f(*first);
26 
27        returnf;
28 
29 }
相關文章
相關標籤/搜索