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

Стандартная библиотека шаблонов STL и класс list по работе с двунаправленным списком - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ бинарный поиск, для char http://www.cyberforum.ru/cpp-beginners/thread204605.html
всем привет! Не подскажете как реализовать метод бинарного поиска для поля записи(я использую массив записей), если тип данных char ? пробывал несколько вариантов, компилировалось без проблем, а вот ищет не корректно =( Надеюсь поможете! Всем заранее спасибо Добавлено через 23 часа 0 минут ну что никто не может помочь? :( Добавлено через 42 минуты вот в общем что смог сделать я: void...
C++ Переписать пять первых положительных элементов массива подряд в другой массив Люди добрые, помогите решить пару задач на С++ на одномерные и двумерные массивы (я новичок и мало что в этом соображаю): 1)Дан массив Х. Переписать пять первых положительных элементов массива подряд в массив У. Найти максимальный элемент массива Х. 2)Найти наибольший и наименьший элементы вещественного массива. Если таких элементов несколько, определить, сколько их. Создать фйнкции для... http://www.cyberforum.ru/cpp-beginners/thread204604.html
работа с векторами C++
для заданных с клавиатуры значений х1,х2....хn вычислить значение величины Y по формуле: Y=n*sqr(x1)+(n-1)*sqr(x2)+(n-2)*sqr(x3)+...+1*sqr(xn)
C++ Вычисление произведения отрицательных элементов в каждом столбце двумерного массива
Напишите фрагменты программ для решения следующих задач: 1)вычисление произведения отрицательных элементов в каждом столбце двумерного массива; 2)вычисление суммы положительных элементов в каждой строке двумерного массива.
C++ шаблон стека http://www.cyberforum.ru/cpp-beginners/thread204570.html
нужно написать шаблон стека. не как работающую программу, а как часть кода. помогите пожалуйста, если кто знает
C++ Поиск подстроки в файле Помогите организовать поиск подстроки в текстовой строки файле, которая вводится с клавиатуры подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2796 / 1572 / 246
Регистрация: 03.05.2010
Сообщений: 3,649
07.12.2010, 08:22     Стандартная библиотека шаблонов STL и класс list по работе с двунаправленным списком
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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
//////////////////////////////////////////////////////////////////////////////////////
//Используя стандартную библиотеку шаблонов STL и класс list по работе 
//с двунаправленным списком
//Даны натуральные числа m и n символы s1,s2,...,sn,(m<n). 
//Получить последовательность символов.
//A)S(m+1),S(m+2),...,Sn,S1...,Sm
//A)S(m+1),S(m+2),...,Sn,Sm...,S1
//////////////////////////////////////////////////////////////////////////////////////
#include <algorithm>
#include <iostream>
#include <iterator>
#include <list>
//////////////////////////////////////////////////////////////////////////////////////
typedef std::list<char>  T_char_list;
//////////////////////////////////////////////////////////////////////////////////////
void  print_list(const T_char_list&  char_list)
{
    std::copy(char_list.begin(), char_list.end(), 
              std::ostream_iterator<char>(std::cout, " "));
    std::cout << std::endl;
}
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    const int  N_MIN  = 2;
    const int  N_MAX  = 26;
    int        n      = 0;
    do
    {
        std::cout << N_MIN
                  << " <= n <= "
                  << N_MAX
                  << ": ";
 
        std::cin >> n;
    }while(   n < N_MIN
           || N_MAX < n);
 
    const int  M_MIN = N_MIN - 1;
    const int  M_MAX = n - 1;
    int  m = 0;
    do
    {
        std::cout << M_MIN
                  << " <= m <= "
                  << M_MAX
                  << ": ";
 
        std::cin >> m;
    }while(   m < M_MIN
           || M_MAX < m);
 
    struct T_generate_alph
    {
        char  symb_cur_;
        T_generate_alph() : symb_cur_('a')
        {}
        //----------------------------------------------------------------------------
        char  operator() ()
        {
            return  symb_cur_++; 
        }
    };
 
    T_char_list  char_list(n);
    std::generate(char_list.begin(), char_list.end(), T_generate_alph());
    std::cout << "Исходный список:"
              << std::endl;
    print_list(char_list);    
 
    T_char_list::iterator  new_begin(char_list.begin());
    std::advance(new_begin, m);
    std::rotate(char_list.begin(), new_begin, char_list.end());
    std::cout << "Список, циклически сдвинутый на "
              << m 
              << " элементов:"
              << std::endl;
    print_list(char_list);
    
    T_char_list::iterator  tail_begin(char_list.end());
    std::advance(tail_begin, -m);
    std::reverse(tail_begin, char_list.end());
    std::cout << "Последние "
              << m
              << " элементов переставлены в обратном порядке:"
              << std::endl;
    print_list(char_list);        
}
 
Текущее время: 03:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru