Requirements for Classes Used in Vectors : vector « Vector « C++






Requirements for Classes Used in Vectors

   
#include <iostream>
#include <vector>

using namespace std;

template <class T>
void print(T& c){
   for( typename T::iterator i = c.begin(); i != c.end(); i++ ){
      std::cout << *i << endl;
   }
}
class Item
{
   public:
   Item();
   ~Item();
   Item( const Item& );
   Item& operator=( const Item& );

   private:

   static int default_constructor_calls_;
   static int assignment_calls_;
   static int copy_constructor_calls_;
   static int destructor_calls_;
};

inline
Item::Item()
{ cout << "\nCall " << ++default_constructor_calls_
     << " of default constructor";
}

inline
Item::Item( const Item& )
{
   cout << "\nCall " << ++copy_constructor_calls_
      << " of copy constructor";
}

inline
Item::~Item()
{  cout << "\nCall " << ++destructor_calls_ << " of destructor"; }

inline
Item& Item::operator=( const Item& )
{
   cout << "\nCall " << ++assignment_calls_
      << " of assignment operator";
   return *this;
}

int Item::default_constructor_calls_ = 0;
int Item::assignment_calls_ = 0;
int Item::copy_constructor_calls_ = 0;
int Item::destructor_calls_ = 0;

int main( )
{
   vector<Item> d( 2 );
 
   d.resize( d.capacity() );

   d.push_back( Item() );

   d.erase( d.begin() );
}
  
    
    
  








Related examples in the same category

1.Demonstrating the simplest STL vector constructors: duplicate chars
2.Demonstrating the simplest STL vector constructors: empty vector
3.Use generic vector to create vector of chars
4.Use generic vector to create vector of integers
5.Use generic vector to create vector of strings
6.Assign Items in int array to vector
7.Store a class object in a vectorStore a class object in a vector
8.Read keyboard input to a vector
9.Add class to a vector and then delete them one by one
10.Pass vector to a function
11.Computing an inner product of tuples represented as vectors
12.Assign value to the last Item
13.Demonstrating STL vector copying constructors
14.Demonstrating STL vector constructors with a user-defined type and showing copying explicitly
15.Demonstrating STL vector constructors with a user-defined type
16.Pass vector of integer to a function
17.Use typedef to define new type based on vector