Created
August 5, 2011 17:57
-
-
Save mohiji/1128113 to your computer and use it in GitHub Desktop.
C++ vectors do a lot under the hood.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
./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