Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 14.07.2016
Сообщений: 30
1

Как вывести элементы контейнера set с ключами собственного типа?

16.09.2017, 21:59. Показов 1876. Ответов 2

Author24 — интернет-сервис помощи студентам
Есть класс, который является типом ключа set.
Класс и предикат к нему
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
#include <string>
using namespace std;
 
struct Date {
    Date (string m, int d, int y) : month{m}, day{d}, year{y} {}
    Date() {
        month = "";
        day = 0;
        year = 0;
    }
    string month;
    int day;
    int year;
};
 
class Fruit {
public:
    Fruit(string n) : name{ n }, count{ 0 }, last_sale_date{ Date() } {}
    string name;
    int count;
    Date last_sale_date;
    string operator* () {
        return name;
    }
};
 
 
struct Fruit_comparsion {
    bool operator() (Fruit* a, Fruit* b) {
        return a->name < b->name;
    }
};
Функция main:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include "classes.h"
#include <set>
#include <iterator>
using namespace std;
 
int main() {
    set<Fruit*, Fruit_comparsion> inventory;
    string str;
    
    while (cin >> str) {
        inventory.insert(&Fruit(str));
    }
 
    system("pause");
    return 0;
}
Возможно я сделал какую-то ошибку, если таковые имеются, пожалуйста, укажите.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.09.2017, 21:59
Ответы с готовыми решениями:

Вывод контейнера типа set <string> в файл
Конечный файл пустует, я всяко-разно пытался, вот мой вариант с итераторами. Смотрите...

Вывести данные из контейнера set в виде бинарного дерева
Ввожу данные (int) с помощью контейнера set. Как их вывести в виде бинарного дерева?

Шаблон как тип контейнера std::set
template&lt;class T&gt; int func(T&amp;, int); typedef std::ostream_iterator&lt;int&gt; out_in; int main() { ...

Как достать указатель на объект из контейнера set
Имеется вот такой код #include &quot;stdafx.h&quot; #include &lt;string&gt; #include &lt;iostream&gt; #include...

2
134 / 104 / 60
Регистрация: 26.10.2013
Сообщений: 312
16.09.2017, 22:22 2
C++
1
2
3
        
Fruit *fruit = new Fruit(str);
inventory.insert(fruit);
0
0 / 0 / 0
Регистрация: 14.07.2016
Сообщений: 30
16.09.2017, 22:44  [ТС] 3
Цитата Сообщение от stzer Посмотреть сообщение
C++Выделить код
1
2
3
Fruit *fruit = new Fruit(str);
inventory.insert(fruit);
Как вывести в поток вывода?
0
16.09.2017, 22:44
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.09.2017, 22:44
Помогаю со студенческими работами здесь

Написание собственного контейнера
Доброго времени суток ! Помогите написать собственный контейнер, основанный на STL, ибо сам с...

Создание собственного контейнера
Проблема: хочу создать собственное меню с кнопками и полями, создаю класс, наследую его от...

Итератор для собственного контейнера
понимаю, что уже создан миллион подобных тем, НО я не вьехал в них. мне необходимо реализовать...

Итератор контейнера set
Здравствуйте! Каким образом можно изменить значение итератора set на n (кроме вызова ++ n раз)....


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru