С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
masikus
2 / 2 / 0
Регистрация: 03.03.2013
Сообщений: 37
#1

Связной список и сортировка - C++

06.05.2013, 07:50. Просмотров 646. Ответов 12
Метки нет (Все метки)

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

В виду
Фамилия Имя Отчество Возраст
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2013, 07:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Связной список и сортировка (C++):

Связной список в Си++ - C++
Помогите организовать связной список. Здание:Организовать связной список, хранящий фамилии по алфовиту и оклады 10-ти сотрудников отдела....

Связной список - C++
Вывод не работает, помогите найти проблему и можно как-нибудь через freopen осуществить ввод? #include<iostream> #include <stdio.h> ...

Связной список / дерево - C++
Здравствуйте, нужна помощь с программой. Задание прикрепляю. Буду благодарен за любую помощь. Сдавать скоро, а идей по реализации вообще...

Построить связной список - C++
Построить связной список, содержащий в качестве данных информацию о студентах: № зачетной книжки, Фамилия, Имя, Отчество, Дата рождения,...

Не получается очистить связной список - C++
Добрый день, не получается очистить двусвязный список, деструктору посылается адрес первого элемента списка. Происходит ошибка обращения...

Необходимо создать связной список с записью в файл и восстановлением из файла - C++
Народ выручайте. В задании необходимо создать связной список с записью в файл и восстановлением из файла. Со списком я более-менее...

12
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
06.05.2013, 13:37 #2
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
#include <iostream>
#include <algorithm>
#include <list>
#include <string>
#include <iterator>
class Employee
{
    std::string lastname_;
    std::string name_;
    std::string surname_;
    size_t age_;
public:
    Employee(std::string lastname, std::string name, std::string surname, size_t age):
      lastname_(lastname), name_(name), surname_(surname), age_(age) {}
    friend std::ostream& operator << (std::ostream&, const Employee&); 
    bool operator < (const Employee& obj) const
    {
        return age_ < obj.age_;
    }
};
std::ostream& operator << (std::ostream& t, const Employee& obj)
{
    return t << obj.lastname_ << ' ' << obj.name_ << ' ' << obj.surname_ << ' ' << obj.age_ << '\n';
}
int main()
{
    std::list<Employee> l;
    l.push_back(Employee("lname1","name1","sname1",30));
    l.push_back(Employee("lname2","name2","sname2",27));
    l.push_back(Employee("lname3","name3","sname3",28));
    l.sort();
    std::copy(l.begin(), l.end(), std::ostream_iterator<Employee>(std::cout));
    system("pause");
}
1
Bend3r
149 / 136 / 18
Регистрация: 29.07.2012
Сообщений: 709
06.05.2013, 13:56 #3
Цитата Сообщение от BumerangSP Посмотреть сообщение
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
#include <iostream>
#include <algorithm>
#include <list>
#include <string>
#include <iterator>
class Employee
{
    std::string lastname_;
    std::string name_;
    std::string surname_;
    size_t age_;
public:
    Employee(std::string lastname, std::string name, std::string surname, size_t age):
      lastname_(lastname), name_(name), surname_(surname), age_(age) {}
    friend std::ostream& operator << (std::ostream&, const Employee&); 
    bool operator < (const Employee& obj) const
    {
        return age_ < obj.age_;
    }
};
std::ostream& operator << (std::ostream& t, const Employee& obj)
{
    return t << obj.lastname_ << ' ' << obj.name_ << ' ' << obj.surname_ << ' ' << obj.age_ << '\n';
}
int main()
{
    std::list<Employee> l;
    l.push_back(Employee("lname1","name1","sname1",30));
    l.push_back(Employee("lname2","name2","sname2",27));
    l.push_back(Employee("lname3","name3","sname3",28));
    l.sort();
    std::copy(l.begin(), l.end(), std::ostream_iterator<Employee>(std::cout));
    system("pause");
}
Забыли дописать
C++
1
#include <Windows>
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
06.05.2013, 14:00 #4
Bend3r, windows.h? А для чего? system("pause")? Для этого достаточно cstdlib подключить. Для студии, в которой писал - этого не требуется. Для остальных в основном system и не нужен.
0
Tulosba
06.05.2013, 14:03
  #5

Не по теме:

Цитата Сообщение от Bend3r Посмотреть сообщение
Забыли дописать
#include <Windows>
А если код под Linux?

0
BumerangSP
06.05.2013, 14:05
  #6

Не по теме:

Tulosba, тогда на system() (33 строчка) будет ошибка

0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
06.05.2013, 14:21 #7
BumerangSP, почему? это же просто вызов команды через шелл.
https://ideone.com/Tz9QSU // просто "pause" нет такой стандартной команды, но никто не мешает добавить
Или Вы не про ошибку компиляции?
0
BumerangSP
06.05.2013, 14:33
  #8

Не по теме:

Tulosba, про pause.
Да не нужна она там, это после студии я не убрал)

0
masikus
2 / 2 / 0
Регистрация: 03.03.2013
Сообщений: 37
06.05.2013, 15:21  [ТС] #9
Цитата Сообщение от BumerangSP Посмотреть сообщение
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
#include <iostream>
#include <algorithm>
#include <list>
#include <string>
#include <iterator>
class Employee
{
    std::string lastname_;
    std::string name_;
    std::string surname_;
    size_t age_;
public:
    Employee(std::string lastname, std::string name, std::string surname, size_t age):
      lastname_(lastname), name_(name), surname_(surname), age_(age) {}
    friend std::ostream& operator << (std::ostream&, const Employee&); 
    bool operator < (const Employee& obj) const
    {
        return age_ < obj.age_;
    }
};
std::ostream& operator << (std::ostream& t, const Employee& obj)
{
    return t << obj.lastname_ << ' ' << obj.name_ << ' ' << obj.surname_ << ' ' << obj.age_ << '\n';
}
int main()
{
    std::list<Employee> l;
    l.push_back(Employee("lname1","name1","sname1",30));
    l.push_back(Employee("lname2","name2","sname2",27));
    l.push_back(Employee("lname3","name3","sname3",28));
    l.sort();
    std::copy(l.begin(), l.end(), std::ostream_iterator<Employee>(std::cout));
    system("pause");
}
спасибо
еще если не сложно можете пояснить несколько частей кода, а именно
C++
1
2
3
4
5
6
7
8
9
10
    friend std::ostream& operator << (std::ostream&, const Employee&); 
    bool operator < (const Employee& obj) const
    {
        return age_ < obj.age_;
    }
};
std::ostream& operator << (std::ostream& t, const Employee& obj)
{
    return t << obj.lastname_ << ' ' << obj.name_ << ' ' << obj.surname_ << ' ' << obj.age_ << '\n';
}
C++
1
    std::copy(l.begin(), l.end(), std::ostream_iterator<Employee>(std::cout));
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
06.05.2013, 15:26 #10
C++
1
friend std::ostream& operator << (std::ostream&, const Employee&);
Перегрузка оператора вывода в поток. Чтобы можно было вывести данные через cout.
C++
1
bool operator < (const Employee& obj) const
Перегрузка оператора "<". Нужна для сортировки именно по возрасту.
C++
1
return t << obj.lastname_ << ' ' << obj.name_ << ' ' << obj.surname_ << ' ' << obj.age_ << '\n';
То, что было вверху для оператора "<<" - это описание. Здесь же его реализация.
C++
1
std::copy(l.begin(), l.end(), std::ostream_iterator<Employee>(std::cout));
Так мы выводим все содержимое списка на экран (с помощью потокового итератора).
1
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
06.05.2013, 15:31 #11
Цитата Сообщение от BumerangSP Посмотреть сообщение
Перегрузка оператора "<". Нужна для сортировки именно по возрасту.
Не обязательно. Можно просто использовать сортировку с заданным методом сравнения.
0
masikus
2 / 2 / 0
Регистрация: 03.03.2013
Сообщений: 37
06.05.2013, 15:31  [ТС] #12
большое спасибо
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
06.05.2013, 15:33 #13
Tulosba, как вариант.
0
06.05.2013, 15:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.05.2013, 15:33
Привет! Вот еще темы с ответами:

Указатели, связной список (Linked List) и динамическое выделение памяти - C++
Я вообще не понимаю как сделать. Ребят! Помогите, как сможете! /* Написать связной список используя структуры и функции Позволить...

Список сортировка - C++
Составить список учащихся с указанием фамилии ,даты рождения ,пола и отсортировать список по алфавиту

Челночная сортировка / Список - C++
Я бы хотел попросить о помощи более опытных людей в програмирование. сам пробовал- не получилось. из-за не достатка опыта. а надо и...

Список и его сортировка - C++
Суть задания такова: создать односвязный список,ввести в него цифры и выдать их в отсортированном по возрастанию порядке на экран. ...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.