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

Скорость перебор элементов vector'a и list'a - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Граф.Найти все мосты http://www.cyberforum.ru/cpp-beginners/thread284115.html
Помогите пожалуйста,нужно в графе найти мосты(мост-ребро,при удалении которого увеличивается количество компонент связности) ,у меня следующий вопрос: как задать входные данные?Ну нужно считывать из файла input.txt,есть два способа - массивом вводить(матричный вид,если ребро между вершинами есть ставим 1) либо структурным(незнаю как, но думаю,что struct list, где каждый List соответсвует...
C++ Не могу изпользовать свой стек в мейне(( ето просто ппц. сложность в том чтоя токо типа научилсо использовать неймспейсы! и тутси взял и написал стек при помощи класа. всё будто правильно ща токо перегруженую операцыю = дорисую и всё!!! но тут запара я даж не могу вызвать в мэйне пуш или поп!!!!! плж посмотрите и укажыте на ошыбки))) а и если не трудно обясните что ето значит - <тип> operator (int i) и что в даном случае оно должно... http://www.cyberforum.ru/cpp-beginners/thread284107.html
Структура "Успеваемость студента": модифицировать, используя битовые поля C++
Доброго времени суток! Есть прога, которая, используя структуру, отображает успеваемость каждого студента. Хотелось бы ее модифицировать, т.е,используя побитовые операции, отбразить ту же успеваемость, экономя память. Зараннее благодарен. #include<iostream> using namespace std; struct Student { char *name; char *last_name; char *group; unsigned dis1:1;
C++ С++ set (Множества)
Дан текст из цифр и строчных латинских букв, за которыми следует точка. Определить каких букв - гласных или согласных - больше в этом тексте. напечатать в алфавитном порядке все согласные буквы, которые входят только в одно слово. то есть пользователь вводит с клавиатуры текст, разделенный точками. Пример: aaa4.xxx21f.trw24.1213frw. программа выдаёт: согласных больше t x t и x - это...
C++ Таблица умножения http://www.cyberforum.ru/cpp-beginners/thread284093.html
У меня такое дело...надо из корней составить таблицу умножения (Работа с матрицей) Например корни: 1 2 3 должна получиться матрица: 1 2 3 2 4 6 3 6 9
C++ как переделать с cout на printf ? Вычислить суммы элементов каждой строки матрицы x. Определить наименьшее значение этих сумм и номер соответствующей строки. #include <iostream> #include <stdlib.h> #include <conio.h> #include <stdio.h> using namespace std; int main() { int x,i; подробнее

Показать сообщение отдельно
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
27.04.2011, 01:56     Скорость перебор элементов vector'a и list'a
Вообще то факт, что в векторе элементы располагаются последовательно, должен зарешать... что называется cash-friendly... И пустые циклы это не очень то хорошо...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <vector>
#include <list>
#include <ctime>
#include <iostream>
 
void foo(int *a) {
    ++(*a);
}
 
int main()
{
        std::vector<int> vec(100000000);
        std::list<int>   lst(100000000);
        
    clock_t vec_start = clock();
        for(std::vector<int>::iterator iter = vec.begin(); iter != vec.end(); ++iter)
        foo(&(*iter));
 
        clock_t vec_fin = clock();
        std::cout<<"Vector: "<< (static_cast<double>(vec_fin - vec_start)) / CLOCKS_PER_SEC << '\n';
        
    clock_t list_start = clock();
        for(std::list<int>::iterator iter = lst.begin(); iter != lst.end(); ++iter)
                foo(&(*iter));
 
        clock_t list_fin = clock();
        std::cout<<"List: "<< (static_cast<double>(list_fin - list_start)) / CLOCKS_PER_SEC << '\n';
}
Код
> g++ -O2 vector.cpp -o vector
> ./vector
Vector: 0.3
List: 2.21
Ну а статический массив стабильно выдает 0
 
Текущее время: 11:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru