C++ Notes: floatVector.h - Problem 5 cumulative header file

This header file has the enhancements posed in the first five floatVector problems. SeeExample: floatVector - Version 1

  1 
  2 
  3 
  4 
  5 
  6 
  7 
  8 
  9 
 10 
 11 
 12 
 13 
 14 
 15 
 16 
 17 
 18 
 19 
 20 
 21 
 22 
 23 
 24 
 25 
 26 
 27 
 28 
 29 
 30 
 31 
 32 
 33 
 34 
 35 
 36 
 37 
 38 
 39 
 40 
 41 
 42 
 43 
// fv3/floatVector.h - illustrates typical vector features
//  Fred Swartz - 2004-12-01

#include <iostream>
using namespace std;

#ifndef floatVector_H
#define floatVector_H

class floatVector {
  friend ostream& operator<<(ostream& os, const floatVector& fv);
  
  public:
    //... Constructors
    floatVector();                 // default constructor
    floatVector(const floatVector& fv); // Copy constructor.
    
    //... Destructor
    ~floatVector();                // Destructor.
       
    //... Functions
    float& at(int position) const; // Return reference to element at position.
    float& back() const;           // Return reference to last elem.
    int    capacity() const;       // Return max size before reallocation.
    void   clear();                // Delete all items.
    bool   empty() const;          // True if no elements, size()==0.
    float& front() const;          // Return reference to first element.
    void   pop_back();             // Remove last element.
    void   push_back(float item);  // Add item to end.
    void   reserve(int cap);       // Insure capacity at least cap.
    int    size() const;           // Return number of elements in vector.
    
    //... Operators
    floatVector& operator=(const floatVector& fv);
    float&       operator[](int position) const; 
    bool         operator==(const floatVector& v2) const;

  private:
    int    _capacity;   // current maximum size (number of floats).
    int    _size;       // current "size"
    float* _data;       // pointer to array of floats
};
#endif