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

Поиск элемента в list

16.05.2016, 20:02. Показов 7935. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана задача:
1. Надо считать из файлов информацию о машинах находящихся на трассе
1) Положение(км)
2) Скорость
3) Гос. Номер
4) Значение в километрах финиша маршрута.
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <fstream>
#include <algorithm>
#include <iterator>
#include <string>
#include <list>
 
using namespace std;
 
class Car
{
public:
    int position, speed, finish, number_lines=0;
    string number, find_number; 
};
 void ReadOnFile(string& fname, list<Car> &inputFileList)
{
    Car a;
    ifstream FinnTheHuman(fname);
    while (!FinnTheHuman.eof())
    {
        FinnTheHuman >> a.position >> a.speed >> a.number >> a.finish;
        inputFileList.push_back(a);
        a.number_lines++;
    }
 
}
 
template <typename T>
void Show(const list<T> &Values)
{
    for (auto it = Values.begin(); it != Values.end(); ++it)
    {
        T v = *it;
        cout << v;
    }
    cout << "\n";
};
 
template <typename T>
 Car FindCar(Car& a, list<T> &Values)
{
    cout << "Enter the number  a car: ";
    cin >> a.find_number;
    list<T> FinfNum;
    bool ret = false;
    for(auto it=Values.begin(); it!=Values.end(); ++it)
    {
        FinfNum = it;
        //*it = list<T>();
        for (auto id = FinfNum.begin(); id != FinfNum.end(); ++id)
        {
            T g = *id;
            if (a.find_number == g) ret = true;
        }
    }
    if (ret == true) cout << "Car on road" << endl;
    else cout << "No car on the road" << endl;
 
}
 
 
std::ostream& operator<<(std::ostream& s, const Car& t)
{
    s << t.position << " " << t.speed << " " << t.number << " " << t.finish << "\n";
    return s;
}
 
int main()
{
    string FileName = "file.txt";
    list<Car> file;
    Car a;
    ReadOnFile(FileName, file);
    Show(file);
    FindCar(a, file);
    
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.05.2016, 20:02
Ответы с готовыми решениями:

Поиск элемента из list
Хочу найти символ из стринговой строки, используя лист. Имеется строчка, из нее хочу найти...

Поиск элемента в list
Написать программу учета заявок на обмен квартир и поиска вариантов обмена. Каждая заявка содержит...

В пользовательском классе List (список) реализовать вставку элемента после заданного элемента
Помогите пожалуйста, мне надо сделать вставку элемента после найденного, а у меня элемент...

Вставка элемента в заданную позицию, удаление элемента по заданной позиции, поиск заданного элемента
Добавить в класс &quot;Односвязный список&quot; следующие функции: вставка элемента в заданную позицию,...

3
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,669
16.05.2016, 20:20 2
Лучший ответ Сообщение было отмечено DivinytyToffee как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
template <typename T>
list<T>::iterator FindCar(list<T> &Values)
{
    string a;
    cout << "Enter the number: ";
    cin >> a;
 
    list<T>::iterator it = find_if(Values.begin(), Values.end(), [a](const Car & c){ return Car.number == a; });
 
    if (ret != Values.end()) cout << "Car on road" << endl;
    else cout << "No car on the road" << endl;
 
    return it;
}
1
0 / 0 / 1
Регистрация: 07.12.2015
Сообщений: 35
16.05.2016, 20:51  [ТС] 3
Цитата Сообщение от nmcf Посмотреть сообщение
Car.number == a;
Студия жалуется на Car. Пишет "does not name a value". Как это можно исправить
0
7792 / 6559 / 2984
Регистрация: 14.04.2014
Сообщений: 28,669
17.05.2016, 09:01 4
Так сделай:
C++
1
return c.number == a;
0
17.05.2016, 09:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.05.2016, 09:01
Помогаю со студенческими работами здесь

Поиск элемента в List<T>
Здравствуйте, прошу помощи в таком вопросе: List&lt;int&gt; Claster1 = new List&lt;int&gt;();...

Поиск id элемента в list
private static int GetIdByTime(int time) { var id = 1; while...

Поиск и изменение элемента в List
День добрый, уважаемые. Есть у меня список одной структуры и в какой-то момент у меня появляется...

Поиск элемента по индексу list
Ребят, помогите пожалуйста class LL { public string listok { get; set; } ...


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

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