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

удалить элемент из середины двусвязного списка - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ удаленный объект существует http://www.cyberforum.ru/cpp-beginners/thread905423.html
Такой класс class Edge { protected: int Ne, Ke; public: __declspec(dllexport) Edge(); __declspec(dllexport) virtual ~Edge(); __declspec(dllexport) void Print();
C++ Дано целое число n. Найти сумму первых n членов ряда 2) Дано целое число n. Найти сумму первых n членов ряда 1 + 2^2 + 3^3 + … +n^n. Для вычисления степени использовать цикл, а не стандартную функцию. (где ^ - в степени, к примеру 2^2 - два в квадрате) 3) Дано целое число eps. Найти сумму тех членов ряда 1 + 2^2 + 3^3 + … +n^n, каждое из которых не превышает числа eps. (где ^ - в степени, к примеру 2^2 - два в квадрате) http://www.cyberforum.ru/cpp-beginners/thread905421.html
C++ Что означает строка
for (i = iv.size() - 1;i != -1;i--) { а именно iv.size() -1 #include <cstdlib> #include <iostream> #include <time.h> #include <math.h> #include <vector> #define ABS(x) (x < 0) ? (-x) : x
Сформировать квадратную матрицу порядка n по заданному образцу C++
1 1 1 ... 1 1 1 2 2 2 ... 2 2 0 3 3 3 ... 3 0 0 ... ... ... ... ... ... ... n-1 n-1 0 ... 0 0 0 n 0 0 ... 0 0 0
C++ Дан массив натуральных чисел А[m,n] и число а. Вывести этот массив на экран, вычислит количество элементов равных а и вывести их индексы http://www.cyberforum.ru/cpp-beginners/thread905398.html
Дан массив натуральных чисел А и часло а. Вывести этот массив на экран, обчислить количество элементов равных а и вывести их индексы. Выручайте, мужики!
C++ С Паскаля на С++ Дана целочисленная матрица размера M × N. Найти количество ее строк, все элементы которых различны. ______________________________________________________________________________________________ program Matrix38; var otvet,k,temp,j,i,M,N:integer; a: array of integer; bool:boolean; begin // Ввод данных writeln('Введите числа M (M<=10) и N (N<=10)'); подробнее

Показать сообщение отдельно
Tulosba
:)
Эксперт C++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
19.06.2013, 11:29     удалить элемент из середины двусвязного списка
Цитата Сообщение от diagon Посмотреть сообщение
Не обязательно, сложность у них одинаковая.
Решил проверить. Родил такой код:
Кликните здесь для просмотра всего текста
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <iostream>
#include <deque>
#include <list>
#include <iterator>
#include <chrono>
#include <iomanip>
#include <string>
#include <thread>
 
template <class C>
int EraseMiddle(std::size_t size)
{
    C container(size);
    
    auto start = std::chrono::system_clock::now();
 
    auto it = std::begin(container);
    std::advance( it, size/2 );
    container.erase( it );
 
    return std::chrono::duration_cast<std::chrono::microseconds>( std::chrono::system_clock::now() - start ).count();
}
 
template <class T>
void MeasureForType()
{
    std::cout << std::setw(10) << "size" << std::setw(10) << "list" << std::setw(10) << "deque\n";
    std::cout << std::string(30,'-') << std::endl;
 
    for( std::size_t size = 1; size < 10000001; size *= 10 )
    {
        std::cout << std::setw(10) << size << 
        std::setw(10) << EraseMiddle<std::list<T>>(size) << 
        std::setw(10) << EraseMiddle<std::deque<T>>(size) << std::endl;
    }    
}
 
class C
{
public:
    C& operator=( const C& c )
    {
        std::this_thread::sleep_for( std::chrono::microseconds(1));
    }
};
 
int main() {
    
    MeasureForType<char>();
 
 //   MeasureForType<C>();
        
        return 0;
}


На простых типах, например char, дек оказался быстрее в ~10 раз (https://ideone.com/ZS148B)
Но вот на типе, который требует "тяжелого" копирования, получилось радикально иначе (https://ideone.com/Ql4qB6)
 
Текущее время: 03:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru