Vector C++

#include 
#include 
using namespace std;
template 
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 d( 2 );
 
   d.resize( d.capacity() );
   d.push_back( Item() );
   d.erase( d.begin() );
}