Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/34: Рейтинг темы: голосов - 34, средняя оценка - 4.76
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 7

Как посмотреть реализацию функций STL?

09.11.2015, 18:00. Показов 7175. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Вопрос возник в процессе выполнения упражнений из книги "Язык программирования C++" Страуструпа.
Он предлагает написать аналоги функций strlen(), strcpy(), strcmp() и сравнить их со стандартными библиотечными версиями.
Функции написать, по-моему, получилось, а как посмотреть библиотечные версии для сравнения я не понимаю.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.11.2015, 18:00
Ответы с готовыми решениями:

Можно ли посмотреть в нормальном виде описание STL методов и функций?
Допустим, мне нужно посмотреть, какие члены-функции есть в библиотеке <vector>. Чтобы это сделать, я создаю какой-нибудь вектор, вызываю,...

Как посмотреть объявления функции stl
Я часто участвую на олимпиадах по программированию, пишу на c++. На олимпиадах я часто пользуюсь библиотекой stl, но постоянно забываю...

Как посмотреть code элементов STL в Visual Studio ?
Мне нужно взглять на код контейнера сток (STL Conteiner stack ) на что надо нажать в Visual Studio 2010 express чтоб увидеть код этой штуки...

11
 Аватар для _Valera_
495 / 377 / 136
Регистрация: 27.01.2015
Сообщений: 1,588
09.11.2015, 18:02
есть документация, или напиши функцию выдели и нажми F12
0
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
09.11.2015, 18:07
Ну это как бы все от среды зависит, у меня в Qt просто наводишь мышку и видно сокращенное описание функции, ну еще как вариант можно провалится в саму библиотеку и там ее найти!

Добавлено через 1 минуту
А так в помощь cppreference
0
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 7
09.11.2015, 23:08  [ТС]
Спасибо за ответы.
Тем не менее, к сожалению, пока не разобрался.
Я использую Code::Blocks 13.12. Выделить функцию и нажать F12 не помогает - просто ничего не происходит. Я как раз и хочу узнать, где можно найти эту самую документацию.
В cppreference для функции, скажем, strcpy() нашел следующее: http://ru.cppreference.com/w/c... yte/strcpy
Описано, что делает функция, собственно реализации там нет.
0
166 / 69 / 17
Регистрация: 22.03.2011
Сообщений: 196
09.11.2015, 23:13
D89,
Цитата Сообщение от D89 Посмотреть сообщение
и сравнить их со стандартными библиотечными версиями
жестокая шутка
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
09.11.2015, 23:16
Цитата Сообщение от D89 Посмотреть сообщение
Он предлагает написать аналоги функций strlen(), strcpy(), strcmp() и сравнить их со стандартными библиотечными версиями.
Сравнить написанное, или сравнить результат их выполнения?
0
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 7
09.11.2015, 23:18  [ТС]
pproger, :-D
Mesteriis, провалиться в библиотеку - Вы имеете ввиду вызвать сбой в работе функции, чтобы открылся ее код с указанием на строку, в которой произошла ошибка? У меня как-то получилось так сделать случайно. Специально теперь не получается(
И все-таки хочется освоить какой-нибудь "цивилизованный" вариант.

Добавлено через 1 минуту
castaway, я, возможно, не прав, но мне кажется, что написанное.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
09.11.2015, 23:21
Цитата Сообщение от D89 Посмотреть сообщение
В cppreference для функции, скажем, strcpy() нашел следующее: http://ru.cppreference.com/w/c... yte/strcpy
Описано, что делает функция, собственно реализации там нет.
И не будет. strcpy - сишная функция, ее можно предварительно скомпилировать, а юзеру дать один готовый бинарик. А то и вообще вшить внутрь стандартных библиотек ОС. Что, собственно, и делают. Поэтому, реализация от того бинарика может где и есть, но где - фиг его знает.

К слову говоря, с некоторыми шаблонами надо было делать также. А то теперь происходят конфузы вида "добавил один разнесчастный регексп, программа раздулась на полмегабайта" (потому что регексп потащил за собой парсер регулярных выражений).
0
Эксперт С++
4986 / 3093 / 456
Регистрация: 10.11.2010
Сообщений: 11,170
Записей в блоге: 10
09.11.2015, 23:23
Цитата Сообщение от D89 Посмотреть сообщение
castaway, я, возможно, не прав, но мне кажется, что написанное.
У разных компиляторов могут быть разные реализации...
А какого года книга?
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
09.11.2015, 23:30
Лучший ответ Сообщение было отмечено D89 как решение

Решение

Напишите свои аналоги функций strlen(), strcpy(), strcmp() и сравните с библиотечными.

Добавлено через 3 минуты
Цитата Сообщение от D89 Посмотреть сообщение
Описано, что делает функция, собственно реализации там нет
Чтобы увидеть реализацию, нужно скачивать исходники glibc и там смотреть. В отличие от Си++ тут нет реализаций в хидерах
0
 Аватар для Mesteriis
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
09.11.2015, 23:41
D89, Зачем так плохо думать? в QT при нажатой "функциональной кнопки" (у меня в маке яблочка, в винде окошко) падаешь в библиотеку если кликнуть!
0
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 7
10.11.2015, 09:55  [ТС]
castaway, это третье издание, 2008 год.
Evg, большое спасибо, нашёл в glibc на github.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.11.2015, 09:55
Помогаю со студенческими работами здесь

STL-контейнер.Переделать реализацию.
Ребята, написал прогу, в которой контейнер типа вектор хранит данные класса банк, и проводит с ними дейтвия, сортировка, поиск, добавление,...

Возможно ли посмотреть реализацию библиотечной функции?
Здравствуйте. Возможно ли просмотреть реализацию библиотечной функции,если да,то как? с++(MSVS 2013);

Как посмотреть листинг всех стандартных функций С++?
объясните пожалуйста, как постмотреть листинг всех стандартных функций С++? вернее хотелось бы любую стандартную функцию взять и...

Где посмотреть исходный код STL?
где можно посмотреть исходный код STL??

Как можно расширить STL своим набором функций?
За предисловие сгодится то что я запорол контест из-за того, что юзал STL типа a.find(b) != string::npos Когда нормальные решения были...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru