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

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

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

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

10.02.2014, 22:33. Просмотров 440. Ответов 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: Спойлера добавил, что бы вы не подумали, будто я совсем не старался )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.02.2014, 22:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос STL список. Не понятно (C++):

Кольцевой список STL - C++
Добрый день, такой вопрос: можно ли работать с STL-списком как с кольцевым? Если да, то как? Нигде не нашел в литературе.

кольцевой список. STL - C++
В общем, есть такая проблема. Нужно реализовать кольцевой список, удовлетворяющий требованиям STL. То есть, он должен работать со всеми...

Дан список студентов (STL) - C++
Помогите пожалуйста, очень срочно надо) 1). Дан список студентов в файле input.txt в котором содержится фамилия студента и курс...

Внесение обїекта в список <list> STL - C++
Доброго времени суток! Прошу помощи в решении следующего вопроса Идея такая: 1. Создаю класс class cStatic { public: ...

Класс-список с доступом к любому элементу (STL) - C++
Нужно написать контейнерный класс список для хранения объектов класса комплексных чисел(имеется). Причем нельзя делать очередь, стек, дек и...

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

14
vovacreme
-16 / 61 / 13
Регистрация: 14.01.2014
Сообщений: 145
10.02.2014, 23:09 #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");
}
1
alsav22
5421 / 4816 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
10.02.2014, 23:10 #3
Цитата Сообщение от KochI Посмотреть сообщение
Сказали, для хранения данных использовать списки...
Наверное, всё-таки, списки структур, а не string. Сказали, что можно list из STL использовать?
0
KochI
1 / 1 / 0
Регистрация: 09.12.2012
Сообщений: 38
10.02.2014, 23:14  [ТС] #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");
}
Нельзя структуру приминять -.-
0
vovacreme
-16 / 61 / 13
Регистрация: 14.01.2014
Сообщений: 145
10.02.2014, 23:15 #5
Цитата Сообщение от KochI Посмотреть сообщение
Да-да

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

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

Упорядочить список по возрастанию (для решения задачи использовать STL) - C++
Во входном файле в первой строке три слова и число (13 12 65) в последующих тоже самое. Проверьте код, пожалуйста, выводит непонятные...

как i двигается понятно но вот не понятно как это делает j ? - C++
Здравствуйте, вопрос очень глупы но все же есть цикл for (int i = 0,j = 0; i &lt; source.length; i++) как i двигается понятно но вот не...

STL list. В изначально пустой список вставить 100 элементов путем вставки в случайную позицию - C++
В изначально пустой список вставить 100 элементов путем вставки в случайную позицию. Случайная позиция генерируется каждый раз заново при...

Контейнерный класс типа "Список" без использования STL - C++
Есть базовый класс Component и три производных от него класса: Chipset, SoundCard и VideoAdapter. Нужно описать контейнерный класс Computer...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
11.02.2014, 00:29
Ответ Создать тему
Опции темы

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