Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
13 / 12 / 9
Регистрация: 09.11.2012
Сообщений: 367
Записей в блоге: 1

templates, STL

10.10.2013, 12:11. Показов 3966. Ответов 43
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
ПЕРВОЕ средства обобщенного программирования в С++ (templates)
ВТОРОЕ библиотека STL, контейнеры и алгоритмамы STL

в чем разница первого и второго?

спасибо.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.10.2013, 12:11
Ответы с готовыми решениями:

Variadic templates
А как бы так исхитриться, чтобы шаблонная функция, использующая Variadic templates узнала размер передаваемых ей параметров с тем, чтобы,...

Variadic Templates
проблема только в переводе на русский, обычно это "Шаблоны с переменным числом аргументов" но такое длинное выражение долго не...

Variadic templates
как можно сделать чтобы функция принимала бесконечное количество объектов std::string? (только их) я пробовал вот так: template<const...

43
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
11.10.2013, 11:13
Студворк — интернет-сервис помощи студентам
AnyOne697, Проблема лишь в том, что Вы написали сообщение:
Очень советую избегать шаблонов там, где только можно. И с осторожностью использовать стороннии библиотеки на STL. Они, часто, очень мощные, но сами по себе шаблоны не торт.
Не указано ИМХО, не указано ничего. Просто такое ощущение, что это констатация давно известного факта. А впоследствии выясняется, что вообще наследовать все от базового типа - это та дорога, которой стоит идти. Превозносятся generic в Java и тому подобное, чего нет, не было и никогда не будет в С++. generic и templates это ведь абсолютно разные вещи, заради чего их сравнивать? Шаблоны позволяют куда большую гибкость и пишем мы код так, чтобы он быстрее работал, а не быстрее компилировался (в конце концов, если так важно именно время компиляции можно ведь и ускорить, причем довольно просто).
На тему generic и templates: http://stackoverflow.com/quest... c-and-java
2
 Аватар для AnyOne697
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
11.10.2013, 16:29
Цитата Сообщение от ForEveR Посмотреть сообщение
Не указано ИМХО, не указано ничего. Просто такое ощущение, что это констатация давно известного факта. А впоследствии выясняется, что вообще наследовать все от базового типа - это та дорога, которой стоит идти. Превозносятся generic в Java и тому подобное, чего нет, не было и никогда не будет в С++. generic и templates это ведь абсолютно разные вещи, заради чего их сравнивать? Шаблоны позволяют куда большую гибкость и пишем мы код так, чтобы он быстрее работал, а не быстрее компилировался (в конце концов, если так важно именно время компиляции можно ведь и ускорить, причем довольно просто).
На тему generic и templates: http://stackoverflow.com/quest... c-and-java
Да я всё это прекрасно знаю. Я понимаю некорректность сравнения шаблонов и обобщений. Но в тоже время есть некоторые задачи, которые решаются и шаблонами, и обобщениями. А есть задачи, которые не решаются только одним (или шаблонами, или обобщениями).
И потом, ИМХО напрямую написано не было. Но это был совет, мой совет. И проблема в том, что это не давно известная истина. Истина есть только в логике, в реальной жизни (часто далёкой от логике) нет полностью правильного решения. Мой, лично мой опыт константирует тот факт, что шаблоны решают два класса проблем - вычисления на этапе компиляции и многократное использование кода. Первая - надуманная проблема, она редко возникает действительно, а когда возникает - обычно решается сама собой (компилятор часто умнее человека оказывается). Вторая прекрасно решается с помощью наследования и инкапсуляции (это разные вещи, если что). Показывать общность с помощью шаблонов... Не знаю, это не их задача, на мой взгляд.
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8217 / 5048 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
12.10.2013, 00:14
Цитата Сообщение от AnyOne697 Посмотреть сообщение
И проблема в том, что это не давно известная истина.
Проблема в том, что это было сказано во всеуслышание и пыталось доказываться на протяжении 5 страниц. Мы все порой морозим ерунду, просто некоторые в этом сознаются.

Никто не ставит своей целью заставить конкретно вас использовать шаблоны, да пишите void foo(int), void foo(double), void foo(any_other_type), но вот за слова, сказанные на форуме, который читают люди и учатся языку, надо отвечать.

Вы уже сами себя неоднократно слили, нет смысла более вести дискуссию на тему профита обобщенного программирования и шаблонов в частности, просто в следующий раз воздержитесь от столь громких высказываний не имея веских аргументов, ну или хотя бы интересной теории, а то уже даже читать становится скучно.
2
 Аватар для AnyOne697
134 / 106 / 10
Регистрация: 22.05.2010
Сообщений: 533
12.10.2013, 00:22
Цитата Сообщение от MrGluck Посмотреть сообщение
то уже даже читать становится скучно.
Не читайте. Это всё было мой опыт. У вас он может быть другой. Впрочем, я, конечно, слишком сильно выразился. Я ни разу не говорил, что я не использую шаблоны. Но почти всегда, когда я их использую - начинаются проблемы. Даже с виртуальными методами и их перегрузкой не было столько проблем, как с ними.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.10.2013, 00:22

Variadic templates
typedef function<double(double ...)> fun; inline int sum() { return 0; } template <typename ... Types> double sum(double...

Variadic templates
1. как можно сделать чтобы передавались ссылки на переменные? (с variadic templates) 2. как вообще обращаться к переменным объявленным...

Variardic templates
Вообщем есть одна задумка, реализовать одну штуку :D Надеюсь общую идею изображу в коде ниже: #include <iostream> #include...

C++11::templates::compilation failure
Почему не компилируется. Объяснить. template< unsigned v = 10 > class a { public: class b { std::vector< char > seq;...

Templates внутри класса
Добрый день!! Я новичок в Си ++. Никак не могу разобраться в синтаксисе. Помогите пожалуйста, а если можете, подскажите как лучше исполнить...


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

Или воспользуйтесь поиском по форуму:
44
Ответ Создать тему
Новые блоги и статьи
Книги по геймдизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru