Skip to content

Instantly share code, notes, and snippets.

@mohiji
Created August 5, 2011 17:57
Show Gist options
  • Save mohiji/1128113 to your computer and use it in GitHub Desktop.
Save mohiji/1128113 to your computer and use it in GitHub Desktop.
C++ vectors do a lot under the hood.
#include <vector>
#include <cstdio>
using namespace std;
class Test
{
public:
Test()
{
printf(" Test being created!\n");
}
~Test()
{
printf(" Test being destroyed!\n");
}
Test(const Test& copy)
{
printf(" Test being copied!\n");
}
};
int main(int argc, char **argv)
{
vector<Test> testVector;
printf("Reserving room for 10 test objects.\n");
testVector.reserve(10);
printf("Resizing the vector to 10 objects.\n");
testVector.resize(10);
printf("Clearing the vector.\n");
testVector.clear();
printf("Resizing the vector back down to 1 object.\n");
testVector.resize(1);
printf("Adding 10 test objects\n");
for (int i = 0;i < 10; i++) {
testVector.push_back(Test());
}
printf("Clearing the vector.\n");
testVector.clear();
printf("Resizing the vector back down to 1 object.\n");
testVector.resize(1);
printf("Reserving room for 10 objects and adding them.\n");
testVector.reserve(10);
for (int i = 0;i < 10; i++) {
testVector.push_back(Test());
}
printf("Leaving main()\n");
return 0;
}
./vtest
Reserving room for 10 test objects.
Resizing the vector to 10 objects.
Test being created!
Test being copied!
Test being copied!
Test being copied!
Test being copied!
Test being copied!
Test being copied!
Test being copied!
Test being copied!
Test being copied!
Test being copied!
Test being copied!
Test being destroyed!
Test being destroyed!
Clearing the vector.
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Resizing the vector back down to 1 object.
Test being created!
Test being copied!
Test being copied!
Test being destroyed!
Test being destroyed!
Adding 10 test objects
Test being created!
Test being copied!
Test being destroyed!
Test being created!
Test being copied!
Test being destroyed!
Test being created!
Test being copied!
Test being destroyed!
Test being created!
Test being copied!
Test being destroyed!
Test being created!
Test being copied!
Test being destroyed!
Test being created!
Test being copied!
Test being destroyed!
Test being created!
Test being copied!
Test being destroyed!
Test being created!
Test being copied!
Test being destroyed!
Test being created!
Test being copied!
Test being destroyed!
Test being created!
Test being copied!
Test being copied!
Test being copied!
Test being copied!
Test being copied!
Test being copied!
Test being copied!
Test being copied!
Test being copied!
Test being copied!
Test being copied!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Clearing the vector.
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Resizing the vector back down to 1 object.
Test being created!
Test being copied!
Test being copied!
Test being destroyed!
Test being destroyed!
Reserving room for 10 objects and adding them.
Test being created!
Test being copied!
Test being destroyed!
Test being created!
Test being copied!
Test being destroyed!
Test being created!
Test being copied!
Test being destroyed!
Test being created!
Test being copied!
Test being destroyed!
Test being created!
Test being copied!
Test being destroyed!
Test being created!
Test being copied!
Test being destroyed!
Test being created!
Test being copied!
Test being destroyed!
Test being created!
Test being copied!
Test being destroyed!
Test being created!
Test being copied!
Test being destroyed!
Test being created!
Test being copied!
Test being destroyed!
Leaving main()
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Test being destroyed!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment