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

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

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

Проблемы с STL - C++

25.11.2012, 00:53. Просмотров 718. Ответов 15
Метки нет (Все метки)

Задание довольно таки большое. Суть в том, что есть экскурсии(однодневные и многодневные) и нужно всю информацию об этих экскурсиях свести в перемешанную таблицу(перемешивание сцеплением) Доступ осуществляется по коду экскурсии. Каждый элемент таблицы содержит указатель на описатель экскурсии.

Классы экскурсий, даты, времени и маршрута я написал. И я могу записать всю эту информацию в таблицу собственного изготовления, но задание, как я уже писал выше звучит так:
1)На основе описания задачи определить состав классов
2)Разработать иерархию классов и схему их взаимодействия
3)Для каждого класса определить его состояние и необходимые методы
4)Разработать и отладить все классы
5)Для разработки контейнерного класса(вместе с необходимыми итераторами) использовать STL
6)Повторить разработку контейнерного класса(вместе с необходимыми итераторами), используя собственные шаблоны классов

Первые четыре пункта я сделал без проблем. А вот на пятом я застопорился, и в интернетах ничего найти не могу. Как я понял, мне следует воспользоваться шаблонами <vector>+<list> или <multimap>, но как именно? Помогите пожалуйста)

Добавлено через 12 часов 18 минут
up!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.11.2012, 00:53     Проблемы с STL
Посмотрите здесь:

Литература по STL. - C++
Подскажите, пожалуйста, толковые книги/руководства по STL.

Библиотека STL - C++
Добрый вечер, очень нуждаюсь в Вашей помощи. Пропустила тему и теперь не успеваю в ней раобраться.. Помогите пожалуйста переписать код...

STL, функторы - C++
Всем привет! Вообщем есть код: #include &lt;iostream&gt; #include &lt;algorithm&gt; #include &lt;vector&gt; int main() { std::vector&lt;int&gt;...

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

STL, push - C++
Такое дело: написал класс, однако не работает функция push для очереди из STL queue . Объявлял объект как queue &lt;goods&gt; q; class...

STL set - C++
вопрос почему в строке while( (*ii)!=elem) говорит что я не перегрузил != не могу понять, и почему в строке cout&lt;&lt;*p&lt;&lt;&quot; &quot;; говорит что я...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
25.11.2012, 01:12     Проблемы с STL #2
cks, что именно должен хранить контейнер? пару ключ-указатель?
cks
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 10
25.11.2012, 13:44  [ТС]     Проблемы с STL #3
Цитата Сообщение от I.M. Посмотреть сообщение
cks, что именно должен хранить контейнер? пару ключ-указатель?
Ну как я понял, это будет массив из указателей на списки. А элемент списка - код, указатель на тур, указатель на следующий элемент списка
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
25.11.2012, 16:25     Проблемы с STL #4
Т.е. экскурсия - это список? и в массиве надо хранить указатели на экскурсии?
для массива есть std::vector
для списка есть std::list

Но вы забыли про требование: "Доступ осуществляется по коду экскурсии."
значит вместо std::vector надо использовать std::map
cks
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 10
25.11.2012, 16:30  [ТС]     Проблемы с STL #5
Не - не. Экскурсия - это класс. Должна получится таблица, в которой элементами будут являться списки, а элемент списка - экскурсия.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
25.11.2012, 18:37     Проблемы с STL #6
и в чем тогда суть списка? чем отличаются списки, хранимые в разных ячейках массива?
cks
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 10
25.11.2012, 20:15  [ТС]     Проблемы с STL #7
Ну смотри. Есть экскурсия и ее код.
1) Находим значение хэш функции от этого кода
2) Находим ячейку в таблице с этим значением
3) В этой ячейке есть указатель на список
4) Проходим весь список и записываем информацию в конец этого списка

То есть у нас есть таблица из списков. Элемент списка - код, указатель на экскурсию и указатель на следующий элемент списка
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
25.11.2012, 20:24     Проблемы с STL #8
экскурсия = уникальный идентификатор (код)
и у каждой экскурсии он свой, так?

Теперь мы имеем такие данные:
Экс1 Код1
Экс2 Код2
Экс3 Код3

Нам надо занести их в массив, который вы упорно называете таблицей
Считаем хеши, получаем:
Экс1 Код1 Хеш1
Экс2 Код2 Хеш2
Экс3 Код3 Хеш3

Дальше заносим данные в массив (он пустой):
Массив[Хеш1] = Список1 (Экс1) //т.е. в списке только один элемент - Экс1
Массив[Хеш2] = Список2 (Экс2) //т.е. в списке только один элемент - Экс2
Массив[Хеш3] = Список3 (Экс3) //т.е. в списке только один элемент - Экс3

Внимание вопрос, откуда вдруг у нас может появится следующее:
Экс4 Код1 Хеш1
Массив[Хеш1] = Список1 (Экс1, Экс4)
cks
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 10
25.11.2012, 20:38  [ТС]     Проблемы с STL #9
У нас массив фиксированного размера - допустим 10. Пусть мы добавили 10 элементов с хэш1=1, хэш=2 и тд
Хотим добавить 11 элемент, у которого хэш11 получится допустим = 5. Тогда наша таблица станет выглядеть
Массив[Хэш1]->|Код1,Экс1,next->null|
...
Массив[Хэш5]->|(Код5,Экс5,next)->(Код11,Экз11,next)->null|
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
25.11.2012, 21:20     Проблемы с STL #10
А почему у нас массив фиксированного размера? что нам мешает сделать его динамическим? и что это за хеш такой бестолковый, который выдает 10 разных значений?
Эта система будет очень тормознутой на большом количестве записей.
cks
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 10
26.11.2012, 02:11  [ТС]     Проблемы с STL #11
Это мое задание. Такая таблица называется перемешанной(перемешивание сцепление). Поиск элемента занимает О(1)

Добавлено через 31 минуту
Ну так что, никто не может помочь? Мне просто нужно узнать, КАК использовать. Все алгоритмы для такой таблицы легкие и я их знаю. Но как связать их с STL - не совсем понятно

Добавлено через 4 часа 17 минут
апну тему(
Croessmah
Модератор
Эксперт CЭксперт С++
13051 / 7314 / 814
Регистрация: 27.09.2012
Сообщений: 18,050
Записей в блоге: 3
Завершенные тесты: 1
26.11.2012, 02:17     Проблемы с STL #12
Что Вам не понятно? Как использовать STL или как его "приляпать" к Вашей задаче?
cks
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 10
26.11.2012, 02:24  [ТС]     Проблемы с STL #13
Цитата Сообщение от Croessmah Посмотреть сообщение
Что Вам не понятно? Как использовать STL или как его "приляпать" к Вашей задаче?
И первое и, следовательно, второе. Возможно я смогу сделать второе сам, если узнаю первое))
Croessmah
Модератор
Эксперт CЭксперт С++
13051 / 7314 / 814
Регистрация: 27.09.2012
Сообщений: 18,050
Записей в блоге: 3
Завершенные тесты: 1
26.11.2012, 02:38     Проблемы с STL #14
Скотт Мейерс - Эффективное использование STL.
И гугл многое найдет по данной теме.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
26.11.2012, 02:52     Проблемы с STL #15
cks, 2 варианта
1. если хеш - это число от 0 до 9 включительно
C++
1
2
3
std::array<std::list<excursion>, 10> table;
//или
std::vector<std::list<excursion>> table;
2. если хеш - какая-то строка
C++
1
std::map<std::string, std::list<excursion>> table;
О них можно почитать тут http://www.cplusplus.com/reference/ C++ Standard Library: Standard Template Library (STL)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2012, 12:28     Проблемы с STL
Еще ссылки по теме:

stl и полиморфизм - C++
Всем доброго времени суток, возник такой вопрос не знаю как реализовать, имеется 4 класса. Базовый Object он имеет поля x и y от него...

Вопрос по STL - C++
Всем привет Подскажите пожалуйста, у меня есть участок кода: vector&lt;vector&lt;string&gt;&gt; str; В VC2005 работает, а в borland 5.5 и в C-Free...

Книга по STL - C++
Всем привет! Хотелось бы изучить STL, но не знаю какую книгу купить. Джосьютиса уже нет в продаже.Видел вот эту...

Множества STL - C++
Подскажите плиз, как удалить из двух множеств STL одинаковые элементы?


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

Или воспользуйтесь поиском по форуму:
cks
0 / 0 / 0
Регистрация: 24.11.2012
Сообщений: 10
26.11.2012, 12:28  [ТС]     Проблемы с STL #16
Спасибо большое за помощь!
Yandex
Объявления
26.11.2012, 12:28     Проблемы с STL
Ответ Создать тему
Опции темы

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