Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <functional>
- #include <cstring>
- using namespace std;
- double one_test0(int count, int values[]) {
- vector<int> m;
- for (int i = 0; i < count - 1; ++i) {
- m.push_back(i);
- }
- double start = clock();
- m.insert(m.begin(), values[count - 1]);
- double end = clock();
- return (end - start) / CLOCKS_PER_SEC;
- }
- double one_test1(int count, int values[]) {
- vector<int> m;
- for (int i = 0; i < count - 1; ++i) {
- m.push_back(i);
- }
- m.shrink_to_fit();
- double start = clock();
- m.insert(m.begin(), values[count - 1]);
- double end = clock();
- return (end - start) / CLOCKS_PER_SEC;
- }
- double run(function<double(int, int[])> func, int count, int values[]) {
- double time = 0;
- int tries = 10;
- for (int i = 0; i < tries; ++i) {
- time += func(count, values);
- }
- return time / tries;
- }
- int main() {
- vector<int> counts = {
- 5000000,
- 10000000,
- 100000000
- };
- int max_count = counts.back();
- int* v = new int[max_count];
- for (int i = 0; i < max_count; ++i) {
- v[i] = rand();
- }
- vector<function<double(int, int[])>> one_tests = {
- one_test0,
- one_test1
- };
- for (auto count : counts) {
- printf("count=%d\n", count);
- for (int i = 0; i < one_tests.size(); ++i) {
- printf("\ttest #%d\t: \t%.10lfsec\n", i, run(one_tests[i], count, v));
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement