Форум программистов, компьютерный форум CyberForum.ru

Неожиданный результат при сравнении производительности вектора и обычного массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Игра, подобная шашкам. Оптимизация кода http://www.cyberforum.ru/cpp-beginners/thread1243145.html
Добрый вечер. У меня маленькая проблема: пишу игру, наподобие шашек. Почти готово, потом выложу исходники для критики. Сейчас делаю подсветку хода для дамок. т.к. дамке все равно куда идти, то все отличие будет заключаться в том, кого она встретит на пути - свою или чужую шашку. Следовательно это дело можно завернуть в функцию. Проблема в том, что очень много повторяющегося кода, а мне это ужасно...
C++ Написать свой движок с нуля Как написать свой движок с нуля при помощью C++. Заранее спасибо. http://www.cyberforum.ru/cpp-beginners/thread1242826.html
C++ Альтернативный вызов функции
1. Интересует метод вызова функции через указатель(или по другому). 2. Интересует метод взятия кол-ва аргументов функции и их типов, а так же тип возвращяемого значения. По второму пункту вообще ничего не нашёл, а по первому есть некоторые вопросы. #include "FTD2XX.h" // библиотека от FTDI typedef FT_STATUS (*pFT_Open) (int, FT_HANDLE *); // тип данных "функция FT_OPEN" HMODULE hMod =...
C++ СЛАУ. Метод обратной матрицы, метод Гаусса, метод Крамера, метод Зейделя
Помогите ребят. Не могу построить алгоритмы для этих методов Язык C++
C++ Разделить выпуклый многоугольник на 4 равные части двумя взаимно перпендикулярными прямыми http://www.cyberforum.ru/cpp-beginners/thread1242320.html
Почти то же, что и тут: http://www.cyberforum.ru/java/thread1022760.html, но хочется решить на C++. А именно: Есть некоторый выпуклый многоугольник, который необходимо разделить на 4 равные части двумя взаимно перпендикулярными прямыми. Входные данные: количество вершин и их координаты в порядке обхода. Координаты не больше 10000, самих координат не больше 1500. Координаты все целочисленные....
C++ Отследить изменение памяти сторонним процессом Есть основное приложение1. Есть приложение2, которое считывает и изменяет его память. Надо отследить адреса, действие(чтение или запись), значение до и после действия. Куда копать? подробнее

Показать сообщение отдельно
Убежденный
Системный программист
 Аватар для Убежденный
14217 / 6232 / 988
Регистрация: 02.05.2013
Сообщений: 10,391
Завершенные тесты: 1
16.08.2014, 18:32     Неожиданный результат при сравнении производительности вектора и обычного массива
Цитата Сообщение от MAKAPOH Посмотреть сообщение
Мой вопрос в том как так получается что шаблонный класс обгоняет простой массив по скорости?
Причин может быть тьма.
Истину найдете в ассемблерном листинге.

Цитата Сообщение от MAKAPOH Посмотреть сообщение
если вместо operator[] использовать функцию at() для доступа к элементам вектора, то это никак не влияет на результат (в пределах погрешности измерения) хотя функция at() должна делать проверку на выход за границу размера вектора.
Я думаю, компилятор - не дурак.
Размер вектора и значение итератора цикла известны на этапе компиляции, в
результате оптимизации все проверки могут быть выброшены за ненадобностью.
Либо они занимают столь ничтожное время, что не влияют на результат.
 
Текущее время: 00:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru