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

Скорость перебор вектора while/for/foreach - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Наследование и абстрактные классы http://www.cyberforum.ru/cpp-beginners/thread287998.html
расскажите что это и с чем это едят......... а то как то встал на этом!!!
C++ Из Turbo Pascal в C++ Составить программу, которая находит наибольшую сторону треугольника, если заданы координаты вершин (x1,y1), (x2,y2), (x3,y3). Вычисление расстояния между двумя точками оформить с помощью функции по... http://www.cyberforum.ru/cpp-beginners/thread287990.html
C++ Access violation
void max_min (fstream &p) { MYTYPE object; int k, min, max, len; p.clear(); p.seekg(0); len=p.tellg()/(lenDis+16); MYTYPE *arr=new MYTYPE; for (int i=0; read(p, arr); ++i) max=0;
НЕ все работает (МАССИВЫ) C++
Дан массив А11 Найти максимум из диапазона . Отсортировать массив по невозростаннию элементов, исключая из массива положительные нечетные элементыю. Что бы исключить не нужные ел. я присваеваю...
C++ Как изменить шрифт и размер шрифта http://www.cyberforum.ru/cpp-beginners/thread287977.html
подскажите пожалуйсто как изменить шрифт и размер шрифта, какие библиотеки и функции
C++ Констуркторы, деструкторы.... Необходимо для динамического типа данных описать класс, содержащий указатель на динамический тип как поле данных. Для этого класса описать конструкторы (в том числе и конструктор копирования),... подробнее

Показать сообщение отдельно
Damaks
18 / 10 / 1
Регистрация: 02.09.2010
Сообщений: 235

Скорость перебор вектора while/for/foreach - C++

03.05.2011, 19:00. Просмотров 2946. Ответов 8
Метки (Все метки)

В php foreach для массива работает в 2 раза быстрее, чем перебор того же массива циклом while или for.
Нашел на одном сайте:
for/while не лучшее решение для перебора элементов массива, т.к. на каждой итерации выполняется поиск в хештаблице. foreach для этого предпочтительней, ибо просто перебирает элементы списка.
Но это для php, а как обстоят дела с c++ stl, будет ли разница в скорости если при переборе вектора заменить цикл for или while на foreach?
В векторе, насколько мне известно, элементы хранятся в едином куске памяти, и чтобы получить следующий элемент - нужно передвинуть указатель на определенную постоянную величину... мне кажется если инкрементировать итератор, то будут лишние затраты на вычисления, т.к. не определено в какую сторону он инкрементируется или на какую величину меняется, а при foreach известно что всегда на элемент вперед.
Хотя наверно g++, в отличае от php, подобные вещи оптимизирует...?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru