Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Method | executable size | Time Taken (in sec) |
- | -O0 | -O3 | -O0 | -O3 |
- ------------|---------|---------|-----------|----------|
- 1. memset | 17 kB | 8.6 kB | 0.125 | 0.124 |
- 2. fill | 19 kB | 8.6 kB | 13.4 | 0.124 |
- 3. manual | 19 kB | 8.6 kB | 14.5 | 0.124 |
- 4. assign | 24 kB | 9.0 kB | 1.9 | 0.591 |
- #include <vector>
- #define TEST_METHOD 1
- const size_t TEST_ITERATIONS = 100000;
- const size_t TEST_ARRAY_SIZE = 10000;
- int main(int argc, char** argv) {
- std::vector<int> v(TEST_ARRAY_SIZE, 0);
- for(size_t i = 0; i < TEST_ITERATIONS; ++i) {
- #if TEST_METHOD == 1
- memset(&v[0], 0, v.size() * sizeof v[0]);
- #elif TEST_METHOD == 2
- std::fill(v.begin(), v.end(), 0);
- #elif TEST_METHOD == 3
- for (std::vector<int>::iterator it=v.begin(), end=v.end(); it!=end; ++it) {
- *it = 0;
- }
- #elif TEST_METHOD == 4
- v.assign(v.size(),0);
- #endif
- }
- return EXIT_SUCCESS;
- }
- some_vector.assign(some_vector.size(), 0);
- memset(&my_vector[0], 0, my_vector.size() * sizeof my_vector[0]);
- std::fill
- std::size siz = vec.size();
- //no memory allocating
- vec.resize(0);
- vec.resize(siz, 0);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement