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

Время доступа к элементам вектора. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Функция pow и график http://www.cyberforum.ru/cpp-beginners/thread573453.html
Всем привет! Пишу программу, которая аппроксимирует функцию разной степенью полинома и по полученному графику делает прогноз. Так вот, в ходе работы пока что возникли 2 ошибки, которые никак не пойму. 1) Функция pow постоянно выдает ошибку pow: DOMAIN error, хотя программа продолжает работать и все нормально вычисляет. Что вообще за ошибка и как от нее можно избавиться? 2) Когда получаю...
C++ Задача на С++ подскажите Составить программу, в которой сформировать динамический двумерный массив В, состоящий из k строк и p столбцов, в отдельной функции вычислить произведение элементов, имеющих значение, кратные 3. http://www.cyberforum.ru/cpp-beginners/thread573447.html
C++ Дружественные функции
создать класс работы с единицами измерения, создать дружественную функцию для дружественного класса, переводя меры жидких тел из Бария в Британскую пинту.
C++ Поиск методом "золотого сечения"
Ребят, скоро сдавать ргр, в ней нужен алгоритм поиска элемента методом золотого сечения. Подкиньте пожалуйста этот алгоритм, столько в инете страниц перекопал и ничего не смог найти
C++ Открытие сторонней программы с кодом C++ http://www.cyberforum.ru/cpp-beginners/thread573407.html
У меня идея пришла в голову открыть с++ кодом сторонную программу, как с bat-файла с текстом start C:путь файла.ехе . Весь гугл облазил, элементарного способа не нашел. Есть идеи?
C++ Читаем ID3V2 теги в MP3 файлах Добрый день программисты! Я тут занялся ID3V1 тегами public byte TAGID = new byte; public byte Title = new byte; public byte Artist = new byte; public byte Album = new byte; public byte Year = new byte; public byte Comment = new byte; public byte Genre = new byte; подробнее

Показать сообщение отдельно
DU
1477 / 1053 / 45
Регистрация: 05.12.2011
Сообщений: 2,279
14.05.2012, 20:52     Время доступа к элементам вектора.
да сперва одномерный случай и стоит рассмотреть.
вектор устроен примерно так:
struct Vector
{
int* ptr; //указатель на динамически выделенный массив.
};
разница между просто обращением по указателю и обращением через вектор может быть из-за одного косвенного обращения:
ptr[index] vs this->ptr[index]
В остальном от размера вектора не должно зависить. по крайней мере если с увеличением размера вектора и ростет время доступа к дальним элементам, то она так же должна рости и при обращении к элементу через простой динамический массив. В общем разница между вектором и динамически выделенным массивам должна быть из-за одного косвенного обращения. причем это значение постоянное и от размера вектора не зависит.
А вот скорость доступа к ячейке уже может начинать зависить, потому что в игру вступают всякие кеши процессора, и прочая низкоуровневая хренотень, детали которой я не знаю.
так же разница между доступом к статическому и динамическому массивам может быть из-за того, что они в разной памяти находятся. доступ к стеку вроде быстрее. хотя хз. в кногомерных массивах так же из-за переключения страниц памяти время доступа к ячейкам может становится неожиданно долгим.
 
Текущее время: 03:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru