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

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

Войти
Регистрация
Восстановить пароль
 
KochI
1 / 1 / 0
Регистрация: 09.12.2012
Сообщений: 38
#1

STL список. Не понятно - C++

10.02.2014, 22:33. Просмотров 412. Ответов 14
Метки нет (Все метки)

Доброго времени суток, форумчане!
Суть в том - Есть некое задание... В нем стоит условие:
Для хранения данных использовать текстовый файл.
У там должно хранится "Номер поезда" "Куда едет" "Время отправки"
Я сначала риализовал при помощи структуры. Это было довольно таки просто.
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
struct Informer
    {
        char item[20];
        char Platform[20];
        char TimeBack[20];
}; Informer mas[10];
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void SetInformer(Informer * mas)
{
    ifstream in;
    in.open("File.txt");
    int i = 1;
    int n = 0;
    while (!in.eof())
    {
        n++;
        if (n != 4)
            switch (n)
        {
            case 1: in >> mas[i].item;
                break;
            case 2: in >> mas[i].Platform;
                break;
            case 3: in >> mas[i].TimeBack;
                break;
        }
        else { n = 0; i++; }
    }
}

Просто заносил все в массив, после чего считывал - ну, было удобно...
Но, Структуру нельзя использовать. Сказали, для хранения данных использовать списки...
И меня озадачило, как мне реализовать это?
Кликните здесь для просмотра всего текста

Смог считать из файла, то что мне нужно. И тд...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void main(void)
{
    list<string> mylist;
list<string>::iterator i = mylist.begin();
    ifstream in;
    in.open("File.txt");
    string n;
    while (!in.eof())
    {
        in >> n;
        mylist.insert(i, 1, n);
    }
    cout << mylist.size()<< endl;
    mylist.sort();
    std::copy(mylist.begin(), mylist.end(), ostream_iterator<string>(cout, "_"));

Тк, суть в том, что не понятно как теперь мне сделать тот аналог который я сделал со структурой в списке?
Допустим мне нужно будет найти поезда которые едут после 16:00:00, Как мне так организовать список, что бы я смог считать "Номер поезда" "Куда едет" - ну естественна, те которые едут после 16:00:00...
Надеюсь понятно объяснил -.-
Буду благодарен за помощь!
P.S: Спойлера добавил, что бы вы не подумали, будто я совсем не старался )
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vovacreme
-16 / 61 / 13
Регистрация: 14.01.2014
Сообщений: 145
10.02.2014, 23:09     STL список. Не понятно #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
#include <iostream>
#include <fstream>
#include <list>
using namespace std;
 
struct Informer
{
    char item[20];
    char Platform[20];
    char TimeBack[20];
};
 
void SetInformer(list<Informer> & lst)
{
    ifstream in;
    in.open("C:\\File.txt");
    while (!in.eof())
    {
        Informer tmp;
        in >> tmp.item >> tmp.Platform >> tmp.TimeBack;
        lst.push_back(tmp); 
    }
}
 
int main()
{
    list<Informer> l_inf;
    SetInformer(l_inf);
    system("pause");
}
alsav22
5410 / 4806 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.02.2014, 23:10     STL список. Не понятно #3
Цитата Сообщение от KochI Посмотреть сообщение
Сказали, для хранения данных использовать списки...
Наверное, всё-таки, списки структур, а не string. Сказали, что можно list из STL использовать?
KochI
1 / 1 / 0
Регистрация: 09.12.2012
Сообщений: 38
10.02.2014, 23:14  [ТС]     STL список. Не понятно #4
Цитата Сообщение от alsav22 Посмотреть сообщение
Наверное, всё-таки, списки структур, а не string. Сказали, что можно list из STL использовать?
Мне сказали, что структуру нельзя использовать. Используй лишь списки, ну STL list...

Добавлено через 39 секунд
Цитата Сообщение от vovacreme Посмотреть сообщение
Как-то так:

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
#include <iostream>
#include <fstream>
#include <list>
using namespace std;
 
struct Informer
{
    char item[20];
    char Platform[20];
    char TimeBack[20];
};
 
void SetInformer(list<Informer> & lst)
{
    ifstream in;
    in.open("C:\\File.txt");
    while (!in.eof())
    {
        Informer tmp;
        in >> tmp.item >> tmp.Platform >> tmp.TimeBack;
        lst.push_back(tmp); 
    }
}
 
int main()
{
    list<Informer> l_inf;
    SetInformer(l_inf);
    system("pause");
}
Нельзя структуру приминять -.-
vovacreme
-16 / 61 / 13
Регистрация: 14.01.2014
Сообщений: 145
10.02.2014, 23:15     STL список. Не понятно #5
Цитата Сообщение от KochI Посмотреть сообщение
Да-да

Добавлено через 39 секунд

Нельзя структуру приминять -.-
Вы уж определитесь, пожалуйста
Bend3r
 Аватар для Bend3r
148 / 135 / 18
Регистрация: 29.07.2012
Сообщений: 709
10.02.2014, 23:17     STL список. Не понятно #6
Цитата Сообщение от KochI Посмотреть сообщение
Нельзя структуру приминять -.-
В смысле нельзя применять структуру? А как вы хотите реализовать лист, без типа вашей структуры?
KochI
1 / 1 / 0
Регистрация: 09.12.2012
Сообщений: 38
10.02.2014, 23:20  [ТС]     STL список. Не понятно #7
Цитата Сообщение от Bend3r Посмотреть сообщение
В смысле нельзя применять структуру? А как вы хотите реализовать лист, без типа вашей структуры?
Без понятия, мне препод сказал "НЕ используй структуры!!" :\
Bend3r
 Аватар для Bend3r
148 / 135 / 18
Регистрация: 29.07.2012
Сообщений: 709
10.02.2014, 23:22     STL список. Не понятно #8
Цитата Сообщение от KochI Посмотреть сообщение
Без понятия, мне препод сказал "НЕ используй структуры!!" :\
А ну значит создавай столько листов, сколько у тебя переменных в структуре.
По твоему кода получается так.
C++
1
2
3
list<char> l_inf0;
list<char> l_inf1;
list<char> l_inf2;
KochI
1 / 1 / 0
Регистрация: 09.12.2012
Сообщений: 38
10.02.2014, 23:23  [ТС]     STL список. Не понятно #9
Цитата Сообщение от Bend3r Посмотреть сообщение
А ну значит создавай столько листов, сколько у тебя переменных в структуре.
По твоему кода получается так.
C++
1
2
3
list<char> l_inf0;
list<char> l_inf1;
list<char> l_inf2;
И типа, в одном листе хранить поезда, в другом куда, а в третьем время??
Bend3r
 Аватар для Bend3r
148 / 135 / 18
Регистрация: 29.07.2012
Сообщений: 709
10.02.2014, 23:30     STL список. Не понятно #10
Цитата Сообщение от KochI Посмотреть сообщение
И типа, в одном листе хранить поезда, в другом куда, а в третьем время??
Да, ну это бред конечно полный. На много удобней структуры хранить, но раз "препод" сказать значит так надо)
palva
 Аватар для palva
2439 / 1661 / 208
Регистрация: 08.06.2007
Сообщений: 6,575
Записей в блоге: 4
10.02.2014, 23:30     STL список. Не понятно #11
Вместо структуры можно использовать объект с публичными членами. А если и объектов нельзя. тогда как можно использовать list STL, если это объект.
KochI
1 / 1 / 0
Регистрация: 09.12.2012
Сообщений: 38
10.02.2014, 23:33  [ТС]     STL список. Не понятно #12
Цитата Сообщение от Bend3r Посмотреть сообщение
Да, ну это бред конечно полный. На много удобней структуры хранить, но раз "препод" сказать значит так надо)
Согласен.
Просто еще не понятно, список ведь не имеет индексации? Я найду нужно мне время, потом мне как-то нужно будет отыскать Поезд и тд -.-
Bend3r
 Аватар для Bend3r
148 / 135 / 18
Регистрация: 29.07.2012
Сообщений: 709
10.02.2014, 23:52     STL список. Не понятно #13
Цитата Сообщение от KochI Посмотреть сообщение
Просто еще не понятно, список ведь не имеет индексации? Я найду нужно мне время, потом мне как-то нужно будет отыскать Поезд и тд -.-
А ты почитай методы, создай к примеру лист типа стринг. В неси туда элементов 10 и поиграйся вызывая методы через оператор "."
alsav22
5410 / 4806 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.02.2014, 23:52     STL список. Не понятно #14
Цитата Сообщение от KochI Посмотреть сообщение
Мне сказали, что структуру нельзя использовать. Используй лишь списки, ну STL list...
Может испорченный телефон? Сказали одно, а услышали другое? Может сказали, что массив структур нельзя использовать, используй списки?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.02.2014, 00:29     STL список. Не понятно
Еще ссылки по теме:

STL list. В изначально пустой список вставить 100 элементов путем вставки в случайную позицию C++
Не понятно тз C++
Кольцевой список STL C++
Класс-список с доступом к любому элементу (STL) C++
Упорядочить список по возрастанию (для решения задачи использовать STL) C++

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

Или воспользуйтесь поиском по форуму:
KochI
1 / 1 / 0
Регистрация: 09.12.2012
Сообщений: 38
11.02.2014, 00:29  [ТС]     STL список. Не понятно #15
Цитата Сообщение от alsav22 Посмотреть сообщение
Может испорченный телефон? Сказали одно, а услышали другое? Может сказали, что массив структур нельзя использовать, используй списки?
Та нет, вроде все дословно. В любом случае всем спасибо за советы. Еще подумаю -.-
Yandex
Объявления
11.02.2014, 00:29     STL список. Не понятно
Ответ Создать тему
Опции темы

Текущее время: 20:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru