2024-08-27 09:32:53 +02:00
|
|
|
// g++ main.cpp -o main
|
|
|
|
|
|
|
|
#include<cstdio>
|
|
|
|
#include<cstdint>
|
2024-08-27 10:50:44 +02:00
|
|
|
#include<chrono>
|
|
|
|
#include<vector>
|
2024-08-27 10:17:43 +02:00
|
|
|
#include"TurboList.hpp"
|
2024-08-27 15:39:00 +02:00
|
|
|
#include"turbolist.h"
|
2024-08-27 09:32:53 +02:00
|
|
|
|
2024-08-27 10:50:44 +02:00
|
|
|
// #define PRINT_DBG
|
2024-08-27 10:53:44 +02:00
|
|
|
// #define N 65535
|
2024-08-27 10:50:44 +02:00
|
|
|
#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<std::chrono::milliseconds>(dur).count();
|
|
|
|
return ms;
|
|
|
|
}
|
|
|
|
|
|
|
|
static inline void printt(const char *prefix, size_t before, size_t after) noexcept {
|
|
|
|
printf("%s ", prefix);
|
2024-08-27 15:39:00 +02:00
|
|
|
printf("took %zd ms\n", (after - before));
|
2024-08-27 10:50:44 +02:00
|
|
|
}
|
2024-08-27 10:13:29 +02:00
|
|
|
|
2024-08-27 09:32:53 +02:00
|
|
|
int main() {
|
2024-08-27 11:08:58 +02:00
|
|
|
std::vector<int> 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 list;
|
2024-08-27 10:13:29 +02:00
|
|
|
|
2024-08-27 10:50:44 +02:00
|
|
|
auto before_TurboList = ms_now();
|
|
|
|
for(int i = 0; i < N; ++i) {
|
2024-08-27 10:13:29 +02:00
|
|
|
list.insert(i);
|
|
|
|
}
|
2024-08-27 10:50:44 +02:00
|
|
|
auto after_TurboList = ms_now();
|
|
|
|
printt("TurboList", before_TurboList, after_TurboList);
|
2024-08-27 10:13:29 +02:00
|
|
|
|
|
|
|
#ifdef PRINT_DBG
|
2024-08-27 10:32:17 +02:00
|
|
|
for(int i = 0; i < list.size(); ++i) {
|
2024-08-27 10:13:29 +02:00
|
|
|
printf("%d\n", list[i]);
|
|
|
|
}
|
|
|
|
#endif /* PRINT_DBG */
|
|
|
|
|
2024-08-27 15:39:00 +02:00
|
|
|
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 */
|
|
|
|
|
2024-08-27 09:32:53 +02:00
|
|
|
return 0;
|
|
|
|
}
|