Пара векторов или вектор пар

106
28 октября 2021, 06:00

Что будет производительней в общем случае: вектор пар или 2 вектора, где каждый содержит свой элемент?

Скорость нужна для операций: получение одного из значений пары по индексу, добавление пары в конец, удаление пары с конца.

Answer 1

Посмотрим ассемблерный код https://gcc.godbolt.org/z/rZAAcJ

test1():
  mov rax, QWORD PTR b[rip]
  mov rdx, QWORD PTR a[rip]
  mov eax, DWORD PTR [rax+20]
  add eax, DWORD PTR [rdx+20]
  ret
test2():
  mov rdx, QWORD PTR z[rip]
  mov eax, DWORD PTR [rdx+44]
  add eax, DWORD PTR [rdx+40]
  ret

Как видно, у 2 векторов есть 1 лишняя операция (получение указателя на начало вектора). Аналогично и при записи. Поэтому один вектор пар выглядит быстрее.

Без тестирования всё это только предположения, но крайне сомнительно, что данный выбор на что-то существенно повлияет. Выбирайте что лучше подходит по семантике.

READ ALSO
C++ в Arduino. Преобразование вывода в строку

C++ в Arduino. Преобразование вывода в строку

Есть такое код функция hexDump выводит в порт сообщенияКак лучше сделать чтобы результат ее действия возвращался единой строкой

240
Изменение класса блока в зависимости от размеров экрана

Изменение класса блока в зависимости от размеров экрана

я имею блок с классом "preview_main_button" ( <div class="preview_main_button" id="ButtonOnPreview">Перейти ко всем статьям</div> ), но я хочу, чтобы на экранах разрешение...

101
Плавающая ошибка парсинга json3

Плавающая ошибка парсинга json3

Осваиваю JavaScript+React+Redux и столкнулась с такой ситуациейЕсли в браузере (использую Mozilla Firefox) не открывать окно отладки, то весь написанный код...

84