// generate.cpp // // Functions: // generate - Fill a sequence using a generator function // Fibonacci - return the next Fibonacci number in the // Fibonacci series. #include #include #include using namespace std; // return the next Fibonacci number in the // Fibonacci series. int Fibonacci(void) { static int r; static int f1 = 0; static int f2 = 1; r = f1 + f2 ; f1 = f2 ; f2 = r ; return f1 ; } int main() { const int VECTOR_SIZE = 8 ; // Define a template class vector of integers typedef vector IntVector ; //Define an iterator for template class vector of integer typedef IntVector::iterator IntVectorIt ; IntVector Numbers(VECTOR_SIZE) ; //vector containing numbers IntVectorIt start, end, it ; start = Numbers.begin() ; // location of first // element of Numbers end = Numbers.end() ; // one past the location // last element of Numbers // fill the range [first, last +1) with a series of // Fibonnaci numbers using the Fibonacci function generate(start, end, Fibonacci) ; // print content of Numbers cout << "Numbers { " ; for(it = start; it != end; it++) cout << *it << " " ; cout << " }\n" << endl ; }