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

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

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

Студворк — интернет-сервис помощи студентам
Есть класс, который является типом ключа 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
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() { int xx{1, 2, 3, 4, 5, 6, 7, 7,...

2
 Аватар для stzer
140 / 110 / 60
Регистрация: 26.10.2013
Сообщений: 314
16.09.2017, 22:22
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  [ТС]
Цитата Сообщение от stzer Посмотреть сообщение
C++Выделить код
1
2
3
Fruit *fruit = new Fruit(str);
inventory.insert(fruit);
Как вывести в поток вывода?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
16.09.2017, 22:44
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru