Карта C ++: добавьте пару в конце картыC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Карта C ++: добавьте пару в конце карты

Сообщение Anonymous »

Я пытаюсь найти более быстрый способ добавить пары к концу карты. В настоящее время я добавляю пары в конце карты, и, поскольку ключ, который я использую, является индексом цикла For, который сортируется по умолчанию. Итак, у меня есть: < /p>

Код: Выделить всё

#include 
#include 
#include 
#include 
#include 

int main()
{

std::map temp;

for(int i = 0; i < 1000000; i++){

int first[] = {5,10,15,20,25};
int second[] = {10,20,30,40,50};

std::set temp2;
temp2.insert(first, first + 5);
std::set temp3;
temp3.insert(second, second + 5);

std::set temp4;
std::set_union(temp2.begin(), temp2.end(), temp3.begin(), temp3.end(), std::inserter(temp4, temp4.end()));

temp.insert(temp.end(), std::pair(i, temp4));

}

}
< /code>

Когда это время, это занимает около 10 секунд. Однако, когда я комментирую линию temp.insert (temp.end (), std :: pare  (i, temp4)) 
, программа занимает около 4 секунд для выполнения. Мне интересно, почему добавление пары к карте занимает столько времени. Я делаю это наилучшим образом?

Подробнее здесь: https://stackoverflow.com/questions/394 ... of-the-map
Ответить

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

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

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

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

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