Почему производительность Unoromeded_map и MAP отличается между компиляторами, такими как MSVC и GCC?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Почему производительность Unoromeded_map и MAP отличается между компиляторами, такими как MSVC и GCC?

Сообщение Anonymous »

Я только начинаю узнавать о хэш -таблицах. Из того, что я знаю, Unoromeded_map (хэш-таблица) должен быть быстрее, чем Map (красное черное дерево). Но когда я проверил их в Visual Studio, Unoromeded_map был быстрее как для введения, так и для поиска. Однако, когда я запустил те же тесты с GCC, вставка Map оказалась быстрее, чем Unoromeded_map . В тесте использовались 1 миллион случайных чисел, сгенерированных Rand () после Srand (Time (nullptr)) , и среда была отладьте/win32.
#include

#include
#include
#include
#include
#include

using namespace std;

int main() {
int n = 1000000; // 一百万数据
vector v;
v.reserve(n);
srand(time(0));

auto clk = std::chrono::steady_clock{};

for (size_t i = 0; i < n; i++) {
v.push_back(rand());
}

unordered_map um;
auto begin1 = clk.now();
for (auto e : v) um.insert(make_pair(e, e));
auto end1 = clk.now();

map m;
auto begin2 = clk.now();
for (auto e : v) m.insert(make_pair(e, e));
auto end2 = clk.now();

cout

Подробнее здесь: https://stackoverflow.com/questions/796 ... ilers-like
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»