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

STL. Не работает вывод через << в поток когда использую итераторы :( - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разобраться с использованием класса http://www.cyberforum.ru/cpp-beginners/thread401457.html
#include <assert.h> template <class H>H RanDD(H x){return (H)(random(x)-random(x)+1);}; template <class H> class Matrix { private: H **matrix, **tmatrix; H aaa, TEMP, Nevyazka; int SIZE; void Perestanovka(H*,H*);
C++ Не работает программа(рекурсия)(код в нутри) #include "stdafx.h" #include <iostream> using namespace std; char shest; int i; void vvod() { http://www.cyberforum.ru/cpp-beginners/thread401447.html
C++ Не получается правилный вывод на экран.(код в нутри)
если я ввожу больше 1 то на экране отображается не то что я прошу вывести а просто набо цифр(ну или не просто набор цифр) "2" это например "12592" а не "10" #include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv) { char shest;
C++ Удалить элементы кратные 7. Добавить после каждого элемента массива элемент со значенем 0.
// Кузя 2.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include <stdlib.h> #include <conio.h> #include <iostream> #include <time.h> using namespace std;
C++ Считать текст из файла и вывести сначала вопросительные, а затем восклицательные предложения http://www.cyberforum.ru/cpp-beginners/thread401416.html
Здравствуйте форумчане) Помогите, пожалуйста! Требуется: Считать текст из файла и вывести на экран сначала вопросительные, а затем восклицательные предложения. Я как-то делал аналогичную задачу, но там на экран нужно было выводить только фразы в кавычках, а тут как? Вот код моей предыдущей программы. #include <fstream> #include <iostream> #include <string> using namespace std; int main()...
C++ Мумба-Юмба Имя входного файла: f.in Имя выходного файла: f.out Максимальное время работы на одном тесте: 1 секунда Максимальный объем используемой памяти: 64 мегабайта Слова в языке Мумба-Юмба могут состоять только из букв a, b, c, и при этом: • никогда не содержат двух букв b подряд, • ни в одном слове никогда не встречается три одинаковых подслова подряд. Например, по этому правилу в язык... подробнее

Показать сообщение отдельно
DWand
 Аватар для DWand
13 / 13 / 1
Регистрация: 23.04.2011
Сообщений: 99
07.12.2011, 20:25     STL. Не работает вывод через << в поток когда использую итераторы :(
Вроде бы ничего сложного, но почему-то работать не хочет. Никак не могу понять почему (
Ругается, когда пишу
C++
1
2
3
4
void main() {
    ToursManager tm;
    cout << tm;
}
А вот сам код заголовника с классом:

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
#include <fstream>
#include <string>
#include <vector>
#include <queue>
#include <stack>
#include <iterator>
#include <algorithm>
 
struct TourEntry {
public:
    std::string TourName;               // название тура
    std::string ClientSurname;          // фамилия клиента
    unsigned short DaysCount;           // количество дней
    double DayPriceRub;                 // цена за день в рублях
    double Fare;                        // цена за проезд
    double TravelCost;                  // общая стоимость поездки в рублях
    double CurrencyCourse;              // курс валюты
    double CurrencyCount;               // количество валюты
 
    TourEntry() :
        TourName(),
        ClientSurname(),
        DaysCount(0),
        DayPriceRub(0),
        Fare(0),
        TravelCost(0),
        CurrencyCourse(0),
        CurrencyCount(0)
    {}
 
    inline bool LessFare(const TourEntry& teL, const TourEntry& teR) {
        return teL.Fare < teR.Fare;
    }
 
    inline bool LessDaysCount(const TourEntry& teL, const TourEntry& teR) {
        return teL.DaysCount < teR.DaysCount;
    }
 
    friend std::istream &operator>>(std::istream &stream, TourEntry &te) {
        stream >> te.TourName;
        stream >> te.ClientSurname;
        stream >> te.DaysCount;
        stream >> te.DayPriceRub;
        stream >> te.Fare;
        stream >> te.TravelCost;
        stream >> te.CurrencyCourse;
        stream >> te.CurrencyCount;
        return stream;
    }
 
    friend std::ostream &operator<<(std::ostream &stream, const TourEntry &te) {
        stream << "Name \"" << te.TourName << "\"" << std::endl;
        stream << "Client " << te.ClientSurname << std::endl;
        stream << "Number of days: " << te.DaysCount << std::endl;
        stream << "Cost: ----------------------------------" << std::endl;
        stream << "Daily payment:   " << te.DayPriceRub << " RUB" << std::endl;
        stream << "Fare:            " << te.Fare << "RUB" << std::endl;
        stream << "Total price:     " << te.TravelCost << std::endl;
        stream << "Currency course: " << te.CurrencyCourse << std::endl;
        stream << "Currency count:  " << te.CurrencyCount << std::endl;
        return stream;
    }
};
 
 
 
 
class ToursManager {
private:
    std::vector<TourEntry> _tours;
    std::queue<TourEntry> _history;
 
public:
    ToursManager(){}
    ~ToursManager(){}
 
public:
    bool AddDataFromFile(std::string fileName) {
        std::fstream file(fileName, std::ios::in);
        if (!file.is_open()) return false;
 
        std::istream_iterator<TourEntry> reader(file);
        std::istream_iterator<TourEntry> readerEOF;
        copy (reader, readerEOF, _tours);
 
        file.close();
        return true;
    }
 
    unsigned int GetSize() const {
        return (unsigned int)_tours.size();
    }
 
    TourEntry FindByTourName(std::string tourName) const {
        std::vector<TourEntry>::const_iterator finder;
        finder = std::find_if(_tours.begin(), _tours.end(),
                             [tourName](const TourEntry& te){ 
                             return te.TourName == tourName;}
        );
        if (finder != _tours.end()) {
            copy(finder,finder,_history.back());
            return *finder;
        } else {
            return TourEntry();
        }
    }
 
    friend std::ostream &operator<<(std::ostream &stream, const ToursManager &tm) {
        std::for_each(tm._tours.begin(), tm._tours.end(), [&stream](TourEntry te) {
            stream << te;
            stream << std::endl;
        });
        return stream;
    }
};
MS VS 2010 выдает 32 ошибки (
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru