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

Скорость перебор вектора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ использования функцый http://www.cyberforum.ru/cpp-beginners/thread290043.html
Я начинающий программист вроде бы уже знаю как работают циклы и т.п. Ну хорошей программы написать не могу например: (Открытия CD-RAM при нажатия клавиши, или клавиатурный шпион, удаления файла и т.п.). Я знаю что в этих программах надо знать функции но я не как не могу найти такую книгу: Что бы функции были и их применение и пример их использование. можете или авторов написать или ссылки...
C++ strncpy Дана строка: djh,dfkh,sdj. Как последовательно по отдельности записать в strncpy текстовые части: djh dfkh sdj http://www.cyberforum.ru/cpp-beginners/thread290039.html
C++ combobox и отображение полей
Добрый день , прощу помощи по visual studio , т.к. человек от программирования я далекий и не уверен даже в тот ли раздел я пишу. Собственно как мне кажется моя проблема просто элементарна и скорее всего здесь уже обсуждалась , но к сожалению я даже не знаю как правильно составить вопрос в моем случае. И так суть проблемы : есть форма , на форме есть combobox с 4 значениями , так вот мне...
C++ Как сохранить структуру в виде строк в файле
Помогите пожалуйста очень надо. Есть структура листинг ниже, как сделать чтобы она сохраняла данные структуры в виде строк в файле а потом можно было вывести на экран и файла #include <iostream.h> #include <conio.h> #include <string.h> #include <stdlib.h> #include <stdio.h> struct Auto {
C++ Дополнить программу http://www.cyberforum.ru/cpp-beginners/thread289995.html
#include <iostream> class Calories { public: void Power(); void Display(); void Read(); private:
C++ проясните вопрос в строках вот программа с объявлениями строк как тип стринг и как массив #include "stdafx.h" #include "iostream" #include "string" using namespace std; int main() {string h="mama papa ded"; cout<<h<<endl; подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1605 / 997 / 118
Регистрация: 27.09.2009
Сообщений: 1,923
Завершенные тесты: 1
15.05.2011, 11:36     Скорость перебор вектора
Цитата Сообщение от volovzi Посмотреть сообщение
Nick Alte, gcc — вменяемый компилятор? В нём при любой оптимизации разница одинакова.
Запусти, пожалуйста, на своём "вменяемом" компиляторе и сообщи результаты.
Запустил, на вменяемом GCC, переделав Clock на GetTickCount.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <vector>
#include <windows.h>
 
int main() {
        std::vector<int> v(1000000);
 
        unsigned long clocks = GetTickCount();
        for (unsigned int i = 0; i < v.size(); ++i) v[i];
        std::cout << "Индексы: " << double(GetTickCount() - clocks) / 1000.0 << std::endl;
 
        clocks = GetTickCount();
        for (std::vector<int>::iterator i = v.begin(); i != v.end(); ++i) *i;
        std::cout << "Итераторы: " << double(GetTickCount() - clocks) / 1000.0 << std::endl;
 
        return 0;
}
Результаты - оба 0.
Что и не удивительно, для обоих циклов код вообще не генерируется.

Вот полученный в GCC ассемблерный код для первого цикла:
Assembler
1
2
3
4
5
6
7
8
9
10
11
LBE600:
    .loc 3 8 0
    call    _GetTickCount@0
LVL9:
    .loc 3 8 0 is_stmt 0 discriminator 1
    movl    %eax, %esi
LVL10:
    .loc 3 10 0 is_stmt 1 discriminator 1
    call    _GetTickCount@0
    .loc 3 10 0 is_stmt 0
    movl    %eax, %ebx
Как видим, тут только два вызова GetTickCount подряд. Никакого цикла вообще не осталось, что и неудивительно - в этом цикле не совершается никаких реальных действий и он полностью "вычищается" оптимизатором.
Вот код для второго цикла:
Assembler
1
2
3
4
5
6
7
8
9
LBE575:
    .loc 3 12 0
    call    _GetTickCount@0
    movl    %eax, %esi
LVL19:
    .loc 3 14 0
    call    _GetTickCount@0
LVL20:
    movl    %eax, %ebx
То же самое. Нет действий - нет команд. Вычищено под ноль.
Такие же результаты даёт и Visual Studio.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru