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

Решение задач без циклов, использую библиотеку algorithm - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Исправление ошибок в программе http://www.cyberforum.ru/cpp-beginners/thread724092.html
Здравствуйте! Занимаюсь написанием программы. В ходе написания возник следующий вопрос. В ходе выполнения нижеприведенного кода выдается ошибка: Необработанное исключение в "0x0f3957aa (msvcr100d.dll)" в "laba7.exe": 0xC0000005: Нарушение прав доступа при чтении "0xfeeefee2". Причем программа выполняется нормально, все выводится, но компилятор выдает вышеприведенную ошибку. В чем ошибка? Вот...
C++ Троичное дерево Доброго времени суток, задача следующая: Составить программу для определения количества предков каждой из вершин троичного дерева обходом "в ширину". При создании дерева пронумеровать вершины в прямом порядке. Программа должна выводить изображение дерева с пронумерованными вершинами на экран и показывать порядок обхода вершин. Подскажите пожалуйста с чего начать, через что реализовать дерево,... http://www.cyberforum.ru/cpp-beginners/thread724087.html
записывает в файл каракули C++
почему когда я ввожу данные мне в файл записывает каракули, и такое же когда ввивоже из файла на экран? #include <iostream> #include <iomanip> #include <ctime> #include <cctype> #include <string.h> #include <conio.h> #include <locale.h> #include <stdlib.h>
строки (считать, заменив все вхождения слова «Slovo» на слово «Znak») C++
Помогите, пожалуйста, как написать программку, которая считывает с клавиатуры строку символов, после чего выводит ее на экран, предварительно заменив в ней все вхождения слова «Slovo» на слово «Znak»??? Замену можно производить непосредственно при выводе, не меняя строку в памяти. Если в каком-то месте строки сочетание букв «Slovo» является частью другого, более длинного, слова — то, естественно...
C++ Реализовать часы http://www.cyberforum.ru/cpp-beginners/thread724060.html
Вот такая проблема... не могу придумать, как реализовать часы... То есть, вот такая проблема, у меня есть два времени записанных таким образом: 00:00:00 и 00:00:00, всё это надо уметь складывать, отнимать, умножать и тп. Если на примере сложения, как реализовать сложение с "закономи времени", тобишь, если секунды равны 60, то минута увеличивается на 1, а секунды начинаются с начала... к...
C++ Найти простые числа в заданном диапазоне с помощью решета Эратосфена и вывести их в файл Для зачета задали написать программу для нахождения простых чисел от 1 до 1000000000 и вывод их в файл,чтобы программа делала все это меньше 5 минут,желательно с помощью решета Эратосфена. Как записать в файл и можно ли поставить таймер? #include "stdafx.h" #include <iostream> #include <new> #include <locale> using namespace std; подробнее

Показать сообщение отдельно
Rostov61
Сообщений: n/a
08.12.2012, 20:26     Решение задач без циклов, использую библиотеку algorithm
Имеется список 40 студентов, изучающих математику, физику, биологию и химию, заданный в файле в виде строк
Фамилия предмет
Каждый предмет изучает около 20 студентов. Разработать структуры данных, позволяющих эффективно отвечать на запросы вида «Выдать всех студентов, изучающих биологию и химию, но не изучающих физику».

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
90
91
92
93
template <typename T, typename T1>
T1 copy (T first, T last, T1 first2)
{
    while (first != last)
    {
        *first2 = *first;
        ++ first;
        ++ first2;
    }
    return first2;
}
 
#include <iostream>
#include <iomanip>
#include <vector>
#include <list>
#include <set>
#include <locale.h>
#include <ctime>
#include <iterator>
#include <algorithm>
#include <cstdlib>
#include <string>
#include <fstream>
#include <map>
#include "My.h"
 
using namespace std;
 
bool if_subject(string x)
{
    if ((x=="математика") || (x=="химия") || (x=="физика") || (x=="биология")) 
        return false;
}
 
struct subject {
    bool mathematics;
    bool physics;
    bool biology;
    bool chemistry; 
} ;
 
template <typename C>
class it_sum {
    C &c;
    subject stupid;
public:
        it_sum (C &cc): c(cc), sum(0) {}
        it_sum<C> &operator++() { return *this; }
        it_sum<C> &operator*() { return *this; }
        it_sum<C> &operator = ( typename C::value_type x) {stupid.biology=0; stupid.chemistry=0; stupid.mathematics=0; stupid.physics=0; c[x]=stupid; return *this; }       
};
 
template <typename C>
it_sum<C> iterator_sum (C &cc)
{
    return it_sum<C> (cc);
}
 
 
const char* infile = "input.txt";
 
int main()
{
    setlocale ( LC_ALL , "Russian" ) ;
    srand ( time ( 0 ) ) ;
    vector<string> buf;
    fstream file(infile, ios_base::in);
 
    if (!file)
    {
        cout << "Нет такого файла" << endl;
        return 0;
        
    }
    
        istream_iterator<string> f_it(file);
    istream_iterator<string> end_f;
    buf.resize(46);
        ::copy(f_it, end_f, buf.begin());
    ::copy ( buf.begin(), buf.end(), ostream_iterator<string> (cout, "  ")) ; 
    cout << endl << endl;
    stable_partition( buf.begin(), buf.end(), &subject);
    ::copy ( buf.begin(), buf.end(), ostream_iterator<string> (cout, "  ")) ;   
 
    set <string> name;
    map <set <string>, struct subject > data;
    vector<string>::iterator it = buf.begin();
    advance (it, buf.size()/2);
    ::copy(buf.begin(), it, iterator_sum(data));
 
    return 0;
}
Небольшая заготовка, которая читает инфу из файла в вектор, потом сортирует таким образом, чтоб шли фамилии, а потом предметы, дальше хочу map <set <string>, struct subject >, первое поле - фамилии, второе - предметы...
Пример входного файла:
Ав математика
Бу физика
Гу физика
До физика
Ма биология
Рек математика
Ур химия
Фе химия
Ха биология
Ше биология
Ма физика
Гу биология
Ре биология
Ко биология
Ко математика
Рек физика
Рек химия
Ко химия
Ре химия
Ре физика
Ве математика
Ку биология
Ст химия

Ещё один вопрос, как не задавая размер вектора вначале, читать данные из файла (т.е. если мы не знаем размер файла)
Буду благодарен за помощь!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru