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

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

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

STL. vector в map. Ошибки 2039 и 2839 - C++

29.05.2011, 15:51. Просмотров 514. Ответов 7
Метки нет (Все метки)

День добрый. Вот вкратце задание: автоматизированная система на жд вокзале. Храним номер поезда, время отправления и пункт назначения. Данные организовать в виде бинарного дерева. Поиск по номеру поезда и по городу. Сделал класс Train(данные узла дерева), класс Station(и есть бинарное дерево), в котором структура Node. В Station также поместил
C++
1
map<string, vector<Train*>> city;
, чтобы по нему осуществлять поиск по городу. Вот код поиска:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void Station::search_by_destination( const string& value )
{
    map<string, vector<Train*>>::iterator i = city.find(value);
    if (i->first != value)
    {
        cout << "Trains going to "<< value <<" is not found";
    }
    else
    {
        cout << value << ":" << endl;
        for(vector<Train*>::iterator j = i->second.begin(); j < i->second.end(); ++j)
        {
            cout << setw(10) << setfill('.') << j->get_number() //Вот тут ошибки 2039 и 2839
                << setfill('.') << j->get_time() << endl;             // Тут тоже самое
        }
    }
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.05.2011, 15:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос STL. vector в map. Ошибки 2039 и 2839 (C++):

STL. Map, vector. Строки - C++
Здравствуйте. Почти не знаком с STL. Имеется вектор строк. Нужно найти частоту использования каждой буквы. Я уже который...

Обращение к элементам vector, который находится в map, находящийся в map - C++
Всем добрый день! Имеется такой контейнер. Как обращаться к элементам вектора и как пушбэчить его? map &lt;int,map&lt;int,vector&lt;int&gt; &gt;...

STL map - C++
Вопрос:как мне узнать что не создавался map с заданым str? #include &lt;iostream&gt; #inlclude &lt;map&gt; #include &lt;string&gt; using namespace...

STL :: map - C++
Столкнулся с такой проблемой: Нужно вставить в отсортированную map-таблицу элемент. Использую: myMap.insert(myIterator,pair&lt;type1,...

stl map - C++
где можно прочитать о stl map? подскажите книги..

Map stl - C++
Не могу понять, почему не находит через h1.find(argv). когда argv == &quot;-o&quot; vs пишет &quot;itr = (0xcdcdcdcd &lt;Ошибка при чтении символов...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
29.05.2011, 16:10 #2
видимо (*j)->get_number();

Добавлено через 45 секунд
*j - operator* для итератора, он возвращает Train*
0
DJFile
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 31
29.05.2011, 16:28  [ТС] #3
Теперь такая ошибка:

error C2679: binary '<<' : no operator found which takes a right-hand operand of type 'const Time' (or there is no acceptable conversion)

В строке:
C++
1
<< setfill('.') << j->get_time() << endl;
Хотя для класса Time оператор << перегружен, а get_time() вот такой:
C++
1
2
3
4
5
    
const Time& get_time() const
{
    return time;
}
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
29.05.2011, 16:40 #4
приводите код оператора, ну и есть подозрение, что он должен быть operator<<(ostream&, const Time&)
0
DJFile
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 31
29.05.2011, 17:49  [ТС] #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ostream& operator<<(ostream& fo, Time& fp)
{
    if (fp.hour < 10)
    {
        fo << '0' << fp.hour;
    } 
    else
    {
        fo << fp.hour;
    }
    fo << ':';
    if (fp.minute < 10)
    {
        fo  << '0' << fp.minute;
    } 
    else
    {
        fo << fp.minute;
    }
    return fo;
}
Константность в поиске пробовал убирать/добавлять, не помогло
0
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
29.05.2011, 18:00 #6
C++
1
ostream& operator<<(ostream& fo, Time& fp) const
0
alex_x_x
бжни
2447 / 1652 / 84
Регистрация: 14.05.2009
Сообщений: 7,162
29.05.2011, 18:14 #7
выложите кусок кода, который можно скомпилировать чтоли
0
DJFile
0 / 0 / 0
Регистрация: 11.04.2010
Сообщений: 31
29.05.2011, 20:05  [ТС] #8
Так-с везде константность пока что убрал, вроде компилится.
Рабочего кода пока что ещё нет, пока самые легкие методы пилю.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2011, 20:05
Привет! Вот еще темы с ответами:

Вопрос об map STL - C++
Как вивести map? list&lt;int&gt; l; for (int i=1; i&lt;=5; i++) l.push_back(i); map&lt;int,list&lt;int&gt;&gt; a; int d = 9; int f = 5; ...

Map и vector - C++
Добрый вечер... Пользовался всегда Vector'ами, но решил выучить map. Так вот появился вопрос. Как адекватно использовать map и свои...

vector STL - C++
class data { public: char path; char net; char metric; int number; // для укаания строки таблици }; class vertex

Не могу разобраться с map(STL) - C++
Недавно понадобилось использование ассоциативного массива map(STL), дабы сократить код программы. Но возникли сложности. В кратце в...


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

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

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