我只是存储一个节点列表,每个节点都包含一个指向它在列表中的位置的迭代器.然后我对插入和删除std列表和提升列表的节点进行基准测试.
包括
#include <iostream>
#include <memory>
#include <list>
#include <chrono>
#include "boost/container/list.hpp"
#include "boost/shared_ptr.hpp"
#include "boost/make_shared.hpp"
#define ONE_BILLION 1000000000
#define ONE_HUNDRED_MILLION 100000000
#define TEN_MILLION 10000000
#define ONE_MILLION 1000000
#define ONE_HUNDRED_THOUSAND 100000
#define TEN_THOUSAND 10000
Run Code Online (Sandbox Code Playgroud)
帮助函数打印插入或删除的平均持续时间
void print_duration(std::ostream &out, const std::string& str, const std::chrono::high_resolution_clock::duration &d)
{
out << str << ": ";
if (d < std::chrono::microseconds(10))
out << std::chrono::duration_cast<std::chrono::duration<float, std::nano>>(d).count() << " nano s";
else if (d < std::chrono::milliseconds(10))
out << std::chrono::duration_cast<std::chrono::duration<float, std::micro>>(d).count() << " micro s";
else if (d < …Run Code Online (Sandbox Code Playgroud)