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

Сортировка и итераторы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ все элементы в массиве, кроме 1, нужно заменить суммой предыдущих элементов http://www.cyberforum.ru/cpp-beginners/thread618473.html
Ребят очень нужна помощь имеется задача суть такова : все элементы в массиве, кроме 1, нужно заменить суммой предыдущих элементов, например тест: есть массив из 5 элементов: 1 2 3 4 5 ---> 1 3 6 10 15. Нужно теперь, что бы эта задача была сделана с помощью связанного списка, я эту тему не особо понимаю (лежал в больнице когда проходили, а сам как не разбирался все равно не понимаю) #include...
C++ Вычесть массивы Всем привет, ребят помогите закодить данную формулу, I1 и I2 двумерные массивы, x и y это их элементы соответственно. http://www.cyberforum.ru/cpp-beginners/thread618469.html
C++ Не могу понять из-за чего это происходит
Здраствуйте. Вот часть программы: #include <fstream> using namespace std; int main() { ifstream x("input.txt"); ofstream d("output.txt"); char a, c;
Cin и cout не компилируется C++
Начал изучать С++, и возникли проблемы с cin и cout, пишет Undefined symbol, хотя std прописан. Если пишу std::cin то выдает 'cout' is not a member of 'std'. Че делать-то?
C++ Структура с вложенным массивом структур http://www.cyberforum.ru/cpp-beginners/thread618448.html
Здравствуйте! Хочу создать некое подобие файловой системы. есть 2 структуры для папки и файла: struct directory { string name; //имя string path; //пусть к папке struct directory *dirs; //массив вложенных папок struct file * files; //массив содержащихся файлов
C++ Для заданного целого числа n вычислить значение суммы Для заданного целого числа n вычислить значение суммы:\sum_{{i}_{1}}^{n}\sum_{{i}_{2}}^{n}...\sum_{{i}_{n}}^{n}\frac{1}{{i}_{1}+...{i}_{n}} подробнее

Показать сообщение отдельно
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
04.07.2012, 08:39     Сортировка и итераторы
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
bool sortByMarksCoeff(University* univer) /*сортировка групп в порядке убывания отношения среднего бала контрактников к среднему балу бюджетников*/
    {
        struct MarkedGroup // структура, в которой будут хранится указатель на группу
                           // и средний балл контрактников к среднему баллу бюджетников в этой группе.
        {
            Group* group;
            double mark;
    
            MarkedGroup(Group* in_group, double in_mark) // конструктор.
                : group(in_group), mark(in_mark) {}
        };
    
        vector<MarkedGroup> groups; // вектор, с такими структурами.
         
        if(!univer)                 // если указатель на универ NULL,
                                    // то выход с false.
            return false;
    
        Group* ptr = univer->head; // создаётся указатель на группу, и ей присваивается
                                   // адрес первой группы универа.
    
        while(ptr) // заполняет вектор структур типа MarkedGroup, 
                   // в каждую из которых помещается указатель на группу и  
                   // средний балл контрактников к среднему баллу бюджетников в этой группе.
        {
            groups.push_back(MarkedGroup(ptr, getMarksCoeff(ptr))); // получение отношения баллов,
                                                                    // создание структуры MarkedGroup,
                                                                    // помещение её в вектор.
    
            ptr = ptr -> next; // переход к следующей группе универа.
        }
    
        if(groups.empty()) // если вектор пуст, то выход.
            return 0;
    
    
        auto iter = groups.begin(); // создаётся указатель на первую структуру вектора.
        auto end = groups.end();    // создаётся указатель на конец вектора.
    
    // пузырьковая сортировка.....................
        
        for(iter; iter != end; ++iter) // перебор вектора с начала и до конца.
        {
            auto iter2 = iter + 1; // создаётся указатель на следующую структуру.
            auto end2 = groups.end(); // ещё один указатель на конец вектора(зачем?).
             for(iter2; iter2 != end2; ++iter2) // перебор вектора от следующей структуры и до конца.
            {
                if(iter2->mark < iter->mark) // сравниваются отношения баллов у группы, на которую указывет iter 
                                             // с группой, на которую указывает iter2.
                                             // если у второй отношение баллов меьше, группы, через буффер, переставляются 
                                             // местами в векторе.
                {
                    MarkedGroup buf = *iter2; 
                    *iter2 = *iter;
                    *iter = buf;
                }
            }
        }
            
    
        univer->head = univer->tail = NULL; // ?
    
        iter = groups.begin(); // восстанавливается указатель на начало вектора.
        end = groups.end();    // восстанавливается указатель на конец вектора
                               // (зачем, вроде бы не менялся?)
    
        for(iter; iter != end; ++iter)
            addGroup(univer, iter->group, true); // ? addGroup() нет в коде.
         
        return true;
    }
Добавлено через 1 час 5 минут
Исравлю.
 
Текущее время: 13:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru