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

generate() и equal() - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа, которая строит квадратную матрицу и переставляет её блоки по условию http://www.cyberforum.ru/cpp-beginners/thread254015.html
Составить программу, которая строит квадратную матрицу случайных целых чисел (размером 2n × 2n), выводит ее на экран. А затем поменять местами блоки размером n × n, (все сместить на 1 блок в...
C++ Создать квадратную матрицу Составить и отладить программу, которая создает (в памяти ЭВМ) квадратную матрицу порядка n (n задавать константой). http://www.cyberforum.ru/cpp-beginners/thread254014.html
Составить программу, которая образует матрицу (n × n) C++
Составить программу, которая образует матрицу (n × n) случайных вещественных чисел, находит наибольшее значение среди элементов заштрихованной части матрицы и наименьшее - в незаштрихований и выводит...
Вывод названия переменной C++
Решаю дифференциальные уравнения, много уравнений. Использую для вывода результатов отдельно написанную функцию, поэтому необходимо выводить названия переменных и названия массивов. Вообще в самом...
C++ получение окружения из psp http://www.cyberforum.ru/cpp-beginners/thread253998.html
Добрый день, насколько я знаю, что с помощью ассемблера я могу из psp получить служебную информацию о программе, но как это сделать с помощью языков высокого уровня, так как ассемблер я не знаю(
C++ Sizeof и структура с int Привет! Пишу программу для микроконтроллера на Си и под комп на С++. В обеих программах есть такой код: struct { unsigned char adc_data; // 1 byte short int res; // 2 byte } Mod; // 1 + 2... подробнее

Показать сообщение отдельно
Gordex
0 / 0 / 0
Регистрация: 08.03.2011
Сообщений: 7
10.03.2011, 01:33  [ТС]
мой вариант с equal, воспользовался одним из вариантов, предложенных ForEveR. пока все работает, думаю на зачёт парню хватит.
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
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <string>
#include <iterator>
#include <conio.h>
 
struct reader
{
public:
        reader(const std::string& str):ifs(new std::ifstream(str.c_str()))
        {
                //Обработка на открытие
        }
        ~reader()
        {
                ifs->close();
                //delete ifs;
        }
 
        std::string operator () () 
        {
                std::string res;
                if(!ifs->eof())
        std::getline(*ifs, res);
                return res;
        }
private:
        std::ifstream* ifs;
};
 
int count_Strings(std::ifstream& ifs)
{
        std::string str;
        int count=0;
        while(std::getline(ifs, str))
                ++count;
        return count;
}
 
bool predict (std::string i, std::string j)
{
    if(i == j)
        std::cout << i << std::endl;
    return i == j;
}
int main()
{
    /*------------------------------------------------------------------------------------------------*/
        std::vector<std::string> vec1;//вектор строк для первого файла
        std::ifstream ifs1("1.txt"); //открываем файл для подсчёта строка
        if(!ifs1)
        {
                std::cerr<<"Error with opening file\n";
                return 1; //обработка ошибки
        }
        int cnt=count_Strings(ifs1); //считаем количество строк
        ifs1.close();
        reader file("1.txt");
        vec1.resize(cnt);
        std::generate_n(vec1.begin(), cnt, file);
        std::cout << "first file: \n \n";
        std::copy(vec1.begin(), vec1.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
        ifs1.close();
    /*-----------------------------------------------------------------------------------------------------*/
    std::vector<std::string> vec2;//вектор строк для второго файла
    std::ifstream ifs2("2.txt"); //открываем файл для подсчёта строка
        if(!ifs2)
        {
                std::cerr<<"Error with opening file\n";
                return 1; //обработка ошибки
        }
        int cnt2=count_Strings(ifs2); //считаем количество строк
        ifs2.close();
        reader file2("2.txt");
        vec2.resize(cnt2);
        std::generate_n(vec2.begin(), cnt2, file2);
    std::cout << "\n \nsecond file: \n \n";
        std::copy(vec2.begin(), vec2.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
    ifs2.close();
 
    std::cout << std::endl << "equal strings:\n"<< std::endl;
 
    if (std::equal (vec1.begin(), vec1.end(), vec2.begin(), predict))
    {
        std::cout << std::endl << "all strings are equal"; //работает, только если ВСЕ строки равны
    }
    getch();
 
        return 0;
}
Добавлено через 2 минуты
Цитата Сообщение от lemegeton Посмотреть сообщение
Совершенно непонятно, куда засунуть generate и equal.
угу. мне кажется, очень странное условие для такой задачи. насколько я понял, этому учат в ИТМО (Санкт-Петербург).
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru