C++ Tutorial/STL Algorithms Iterator/template iterators

Материал из C\C++ эксперт
Перейти к: навигация, поиск

Computing the sum with template iterators

<source lang="cpp">#include <iostream>

  1. include <vector>

using std::cout; using std::endl; using std::vector; template <typename Iter> double vectorSum(Iter begin, Iter end) {

 double sum = 0.0;
 while( begin != end )
   sum += *begin++;
 return sum;        

} int main() {

 vector<int> sunny;
 sunny.push_back(7);  
 sunny.push_back(12);  
 sunny.push_back(15);
 cout << sunny.size() << " months on record" << endl; 
 cout << "vectorSum number of sunny days: "; 
 cout << vectorSum(sunny.begin(), sunny.end()) << endl; 
 return 0;

}</source>

3 months on record
vectorSum number of sunny days: 34

Use Iter with array

<source lang="cpp">#include <iostream>

  1. include <vector>

using std::cout; using std::endl; using std::vector; template <typename Iter> double vectorSum(Iter begin, Iter end) {

 double sum = 0.0;
 
 while( begin != end )
   sum += *begin++;
 return sum;        

} int main() {

 double temperature[] = { 10.5, 20.0, 8.5 }; 
 cout << "array vectorSum = " 
      << vectorSum(temperature,temperature+sizeof temperature/sizeof temperature[0]) 
      << endl;
 return 0;

}</source>

array vectorSum = 39