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

set_intersection - C++

Восстановить пароль Регистрация
 
mazukta26
1 / 1 / 0
Регистрация: 25.02.2013
Сообщений: 36
13.04.2013, 19:31     set_intersection #1
есть 4 входных файла
1 файл содержит информацию о том, какие рыбы водятся в пруду
3 других хранят информацию, что выловил каждый из трех рыбаков
требуется найти, какие виды рыб есть у каждого рыбака;
для этого я использую set_intersection, однако компилятор выдает из-за этого алгоритма уйму ошибок

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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include <iostream>
#include <fstream>
#include <utility>
#include <functional>
#include <string>
#include <cstring>
#include <set>
#include "algorithm.h"
using namespace std;
string ToLower (const string & a){
    string tmp(a);
    for (int i=0;i<tmp.length();i++)
        if (tmp[i]>='A' && tmp[i]<='Z')
            tmp[i]=tolower(tmp[i]);
        else
            if (tmp[i]>='А' && tmp[i]<='Я')
                tmp[i]=_tolower(tmp[i]);
    return tmp;
}
bool cmp (string & a, string & b){
    return (ToLower(a)<ToLower(b));
}
 
int main (){
    setlocale (LC_ALL,".1251");
    ofstream out("output.txt");
    if (!out){
        cout<<"Выходной файл не может быть создан. Вероятно, не хватает места на диске"<<endl;
        return 0;}
    ifstream in("input.txt");
    if (!in){
        out<<"Входной файл с данными о видах рыб не найден"<<endl;
        out.close();
        return 0;}
    ifstream in1("input1.txt");
    if (!in1){
        out<<"Входной файл с данными о первом рыбаке не найден"<<endl;
        out.close();
        in.close();
        return 0;}
    ifstream in2("input2.txt");
    if (!in2){
        out<<"Входной файл с данными о втором рыбаке не найден"<<endl;
        out.close();
        in.close();
        in1.close();
        return 0;}
    ifstream in3("input3.txt");
    if (!in3){
        out<<"Входной файл с данными о третьем рыбаке не найден"<<endl;
        out.close();
        in.close();
        in1.close();
        in2.close();
        return 0;}
    string tmp;
    set <string> r;
    in>>tmp;
    if (in.eof()){
        out<<"Входной файл с данными о виах рыб пуст"<<endl;
        out.close();
        in.close();
        in1.close();
        in2.close();
        in3.close();
        return 0;}
    while (!in.eof())
    {
        if (find(r.begin(),r.end(),ToLower(tmp))==r.end())
            r.insert(tmp);
        in>>tmp;}
    in1>>tmp;
    set <string> r1;
    if (in1.eof()){
        out<<"Входной файл с данными о рыбаке №1 пуст"<<endl;
        out.close();
        in.close();
        in1.close();
        in2.close();
        in3.close();
        return 0;}
    while (!in1.eof())
    {
        if (find(r1.begin(),r1.end(),ToLower(tmp))==r1.end())
            r1.insert(tmp);
        in1>>tmp;}
    in2>>tmp;
    set <string> r2;
    if (in2.eof()){
        out<<"Входной файл с данными о рыбаке №2 пуст"<<endl;
        out.close();
        in.close();
        in1.close();
        in2.close();
        in3.close();
        return 0;}
    while (!in2.eof())
    {
        if (find(r2.begin(),r2.end(),ToLower(tmp))==r2.end())
            r2.insert(tmp);
        in2>>tmp;}
    in3>>tmp;
    set <string> r3;
    if (in3.eof()){
        out<<"Входной файл с данными о рыбаке №3 пуст"<<endl;
        out.close();
        in.close();
        in1.close();
        in2.close();
        in3.close();
        return 0;}
    while (!in3.eof())
    {
        if (find(r3.begin(),r3.end(),ToLower(tmp))==r3.end())
            r3.insert(tmp);
        in3>>tmp;}
    set <int> res;
    set_intersection(r.begin(),r.end(),r1.begin(),r1.end(),inserter(res,res.begin()));
    return 0;
}
текстовые файлы:
input.txt
карась лещ окунь щука лосось тунец

input1.txt
карась карась лещ карась

input2.txt
лещ щука Лещ лЕЩ карась

input3.txt
лещ щука карась окунь
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.04.2013, 19:31     set_intersection
Посмотрите здесь:

set_intersection C++
C++ set_intersection
C++ set_intersection ??? не понятная ошибка.
Как воспользоваться set_intersection для двух list<string> C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 01:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru