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

Базовые знания - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Хэш-таблица http://www.cyberforum.ru/cpp-beginners/thread694225.html
Дана строка произвольного размера. Необходимо найти все повторяющиеся фрагменты максимальной длины. Для начала нужно создать хэш-таблицу всех символов вида "символ ->массив позиций". Делаю по...
C++ Удалить из массива элементы с номерами от K до L включительно нужна помощь ... Дано массив(целочисленный) размера N и целые числа K и L (1 <= K < L<= N). Требуется удалить из массива элементы с номерами от K до L включительно. http://www.cyberforum.ru/cpp-beginners/thread694222.html
C++ Поиск в векторе
Есть вектор v Нужно задать поиск значения 6 и присвоить переменной i номер элемента вектора v, в котором найдена искомое значение 6. В данном случае i=1 (v=6).
C++ Open SSL
Где взять библиотеку SSL по Win-32 вместе с хедерами ??? Как бы dll-ки нашел а хедеры из папки openssl ( ssl.h, sha.h ... ) не могу найти.
C++ Заполнение строк в структурах http://www.cyberforum.ru/cpp-beginners/thread694189.html
При выполнении программы: для первого элемента массива stud1 структуры student всё проходит нормально, все последующие итерации пропускают элемент структуры name. Предполагаю, что где-то хватается...
C++ Написать класс и его наследник Создать класс, описывающий квадратное уравнение. Определить, сколько корней имеет уравнение. Создать класс наследник, дополнительно хранящий строку (больше, больше или равно, меньше, меньше или... подробнее

Показать сообщение отдельно
silent_1991
Эксперт С++
4964 / 3040 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
11.11.2012, 01:42
nikeo, да в принципе ничего о переменной по указателю сказать нельзя. Если использовать RTTI, то typeof(*ptr_to_var) даст её тип, но особого смысла в этом я не вижу.
Если вопрос про STL-контейнеры, то std::vector основан на динамическом массиве, который обычно имеет большую, чем необходимо в данный момент, фактическую длину. Как только место заканчивается - выделяется новый массив большего размера (стандартные множители размера - 2 или 1,6 (золотое сечение, 1,618...)).
Список (std::list) реализуется так, как я рассказал выше, с учётом того, что он ещё и кольцевой (последний элемент хранит указатель на первый).
Как такового дерева в стандартных контейнерах нет, но такие структуры, как std::set и std::map (а также их мультиверсии) представляются красно-чёрными деревьями. Помимо самого хранения данных в виде бинарного дерева, во время вставок и удалений происходит балансировка дерева, с целью равномерно распределить элементы по всему дереву (чтобы не было так, что, например, левое поддерево корня имеет высоту 10, а правое - высоту 2).
Стек (std::stack) и очередь (std::queue) в контексте STL - адаптеры контейнеров (т.е. внутри представлены каким-либо контейнером, а наружу выдают только ту часть его интерфейса, которая характерна для конкретной структуры). Теоретически в качестве контейнера в стек и очередь можно при создании в качестве второго аргумента шаблона можно передать любой последовательный контейнер, но по умолчанию используется std::deque, так называемый дек, характерный тем, что имеет быструю вставку в начало и конец. Внутренне представлен как связный список небольших массивов (в первом приближении). Расширяется за счёт выделения нового такого узла-массива. Лень мне расписывать его внутреннюю структуру, можно поискать по ключевому слову "std::deque внутренняя реализация".
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru