Demonstrating STL vector constructors with a user-defined type and showing copying explicitly : vector « Vector « C++






Demonstrating STL vector constructors with a user-defined type and showing copying explicitly

   
 

#include <iostream>
#include <cassert>
#include <vector>
using namespace std;

class MyClass {
public:
  unsigned long id;
  unsigned long generation;
  static unsigned long total_copies;

  MyClass() : id(0), generation(0) { }

  MyClass(unsigned long n) : id(n), generation(0) { }

  MyClass(const MyClass& z) : id(z.id), generation(z.generation + 1) {
    ++total_copies;
  }
};

bool operator==(const MyClass& x, const MyClass& y)
{
  return x.id == y.id;
}

bool operator!=(const MyClass& x, const MyClass& y)
{
  return x.id != y.id;
}

unsigned long MyClass::total_copies = 0;

int main()
{
  vector<MyClass> vector1, vector2(3);

  assert (vector1.size() == 0);
  assert (vector2.size() == 3);

  assert (vector2[0] == MyClass() && vector2[1] == MyClass() &&
          vector2[2] == MyClass());

  for (int i = 0; i != 3; ++i)
    cout << "vector2[" << i << "].generation: " << vector2[i].generation << endl;

  cout << "Total copies: " << MyClass::total_copies << endl;
  return 0;
}

/* 
vector2[0].generation: 1
vector2[1].generation: 1
vector2[2].generation: 1
Total copies: 3

 */        
    
    
  








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.Requirements for Classes Used in Vectors
9.Read keyboard input to a vector
10.Add class to a vector and then delete them one by one
11.Pass vector to a function
12.Computing an inner product of tuples represented as vectors
13.Assign value to the last Item
14.Demonstrating STL vector copying constructors
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