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

Является ли адаптер контейнера контейнером - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Тесты по С++ http://www.cyberforum.ru/cpp/thread1785267.html
Появился первый тест по С++ для начинающих. http://www.cyberforum.ru/krtests.php?do=gotest&tststestid=5
C++ Ищу описание Pocketsphinx Можете дать хорошее описание ( туториал ) по pocketsphinx. Просто у меня весьма туго с английским http://www.cyberforum.ru/cpp/thread1784787.html
Multimap find the same key and sum up values C++
Доброе утро Хотел уточнить , потому что знаю, что можно так сделать, но как не знаю if (multimap.find(currentNode) == multimap.end()) { multimap.insert(pair<int,int>(nextNode, Totallength)); } else {
На каком языке написан Explorer.exe? C++
На каком языке написан explorer.exe? *не на русском
C++ Написать элегантнее класс для сложения больших чисел http://www.cyberforum.ru/cpp/thread1783904.html
Уважаемые тру программисты. Я написал класс для сложения больших чисел. Но вот смотрю на код и понимаю, что написано коряво. Смысл функции вроде бы прост. Идем справа налево и складываем числа, запоминая остаток. Глядя на код opensource проектов и прочее, мне кажется, что моё творение явно можно написать лучше. Тут и много строк, и как-то нелаконично, и куча переменных, несколько if. Помогите мне...
C++ Реальная задача для реального проекта для желающих покодить Привет:) Попросили сделать парсер сайта по-дружески, но у меня реально времени на него нет. Если кому-то интересно, могу двигать в нужном направлении и может, при желании, могу пинать за плохой код. Что нужно сделать - парсер с HTTP клиентом. Пример клиента на boost::asio скину, покажу как парсить HTML регулярками (да, есть библиотеки, но думаю руками будет интересней). Могу архитектуру... подробнее

Показать сообщение отдельно
hoggy
5606 / 2236 / 411
Регистрация: 15.11.2014
Сообщений: 5,027
Завершенные тесты: 1
26.07.2016, 19:22     Является ли адаптер контейнера контейнером
Цитата Сообщение от Croessmah Посмотреть сообщение
например, я могу обойти контейнер,
или знаю какую структуру данных он представляет (список, массив и т.д.).
то есть, вы считаете очередь "адаптером" (и не контейнером) только потому,
что она не поддерживает итераторы,
и вы не знаете какую структуру данных она представляет?

на самом деле структура данных вам известна.
std::queue представляет собой адаптер sequence containers.
об этом сказано в спецификации.

поддержка begin/end делается элементарно:

C++
1
2
3
4
using iteratir_type = decltype( std::decltype<container_type>().begin() );
...
 
iteratir_type begin() {  return m_container_type.begin(); }
для очереди это не реализовано лишь потому,
что ей это не нужно согласно её бизнес-логике.

вот если я влезу в исходники стандартной библиотеки,
и допишу комплект begin/end методов,
но все остальное останется прежним.
вы хотите сказать,
что это волшебным образом сделает очередь "не адаптером, а контейнером" ?

или возьмите любой контейнер, который не описан в стандарте.
например, мою формочку.
я из неё выпилю begin/end.
а что у неё под капотом вы не знаете.

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