Я только начинаю узнавать о хэш -таблицах. Из того, что я знаю, 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
Почему производительность Unoromeded_map и MAP отличается между компиляторами, такими как MSVC и GCC? ⇐ C++
Программы на C++. Форум разработчиков
1751292605
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
Подробнее здесь: [url]https://stackoverflow.com/questions/79684195/why-does-the-performance-of-unordered-map-and-map-differ-between-compilers-like[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия