// g++ main.cpp -o main #include #include #include #include #include"TurboList.hpp" #include"turbolist.h" #include // #define PRINT_DBG // #define N 65535 #define N 65535000 static inline size_t ms_now() noexcept { auto now = std::chrono::system_clock::now(); auto dur = now.time_since_epoch(); auto ms = std::chrono::duration_cast(dur).count(); return ms; } static inline void printt(const char *prefix, size_t before, size_t after) noexcept { printf("%s ", prefix); printf("took %zd ms\n", (after - before)); } int main() { // std::vector // std::vector vec; auto before_vector = ms_now(); for(int i = 0; i < N; ++i) { vec.push_back(i); } auto after_vector = ms_now(); printt("vector", before_vector, after_vector); // TurboList // TurboList list; auto before_TurboList = ms_now(); for(int i = 0; i < N; ++i) { list.insert(i); } auto after_TurboList = ms_now(); printt("TurboList", before_TurboList, after_TurboList); #ifdef PRINT_DBG for(int i = 0; i < list.size(); ++i) { printf("%d\n", list[i]); } #endif /* PRINT_DBG */ // C turbolist // turbolist clist = turbolist_create(); auto before_cturbolist = ms_now(); for(int i = 0; i < N; ++i) { turbolist_insert(&clist, i); } auto after_cturbolist = ms_now(); printt("C turbolist", before_cturbolist, after_cturbolist); #ifdef PRINT_DBG for(int i = 0; i < turbolist_size(clist); ++i) { printf("%d\n", turbolist_get(clist, i)); } #endif /* PRINT_DBG */ return 0; }