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

Опытным программистам С++

25.01.2018, 16:56. Показов 11201. Ответов 254
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, я начал изучать С++. Есть определенный план обучения. Например: сначала изучить синтаксис, принцип ООП, контейнеры STL, стандарты С++11/C++14. Вопрос звучит так: что можно еще добавить в список для изучения? Я еще не определился в какой сфере хочу использовать язык, что нужно знать вообще не привязанная к определенной области?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.01.2018, 16:56
Ответы с готовыми решениями:

вопрос к опытным программистам
напишите пожалуйста, как часто вам приходилось или приходится использовать для обработки ошибок механизм try-catch. Возможен ли...

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

Посмотрите опытным взглядом
Задание Дано натуральное число n. Сформировать целочисленный массив A(2n), элементами которого являются числа 1, 3, 5, . . . ,...

254
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
28.01.2018, 22:08
Студворк — интернет-сервис помощи студентам

Не по теме:

Undisputed, он просто ошибся используя stl и его с хорошей работы пнули.:D



Добавлено через 53 секунды
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Т.е. прекратить навязывать а тем более называть частью языка кривой лисопет созданный людьми которые не осилили ООП.
0
28.01.2018, 22:12

Не по теме:

Цитата Сообщение от _stanislav Посмотреть сообщение
Undisputed, он просто ошибся используя stl и его с хорошей работы пнули.
не поверишь -я этот говнокод вообще никогда не использовал. да кстати так о птичках - время наработки на отказ моего софта сделанного на моих библиотеках замерять так и не удалось. Даже когда такая попытка была лет через 5 после запуска таки был сбой по электропитанию. Посему через сколько софт упадет так и не выяснили.

0
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
28.01.2018, 22:12
Fulcrum_013,
Ну так надежность о которой вы говорите требует оверхеда...
Честно говоря не представляю как STL может снизить читабельность.

Есть классы/функции с говорящими названиями... Что тут снижает читабельности не очень понятно
А что с точки зрения ООП в STL по вашему не так?)
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
28.01.2018, 22:18
Цитата Сообщение от Undisputed Посмотреть сообщение
Ну так надежность о которой вы говорите требует оверхеда...
Не требует. Она требует продуманных интерфейсов.

Добавлено через 1 минуту
Цитата Сообщение от Undisputed Посмотреть сообщение
А что с точки зрения ООП в STL по вашему не так?)
Полное отсутсвтие всякого присутствия ООП в STL. STL по абсолютно другой парадигме сделана. не надо путать слово class и ООП это две огромные разницы

Добавлено через 1 минуту
Цитата Сообщение от Undisputed Посмотреть сообщение
Честно говоря не представляю как STL может снизить читабельность.
пример уже приводили с std::remove_if и ContainerNavigator.RemoveAll
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
28.01.2018, 22:20
Fulcrum_013, кстати, причина по которой stl не убрали из стандартной библиотеки, скорее всего такая же что в комитете это решает ни один человек. и Страуструп не просто так объясняет про stl в своей новой книге. а ты забываешь приписывать в конец своего топика что это лично твое мнение. оно скорее всего так и отстранится просто мнением.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
28.01.2018, 22:21
Цитата Сообщение от Undisputed Посмотреть сообщение
Это более гибкое решение. Если бы например там было много проверок, то с++ угодил бы вам но не угодил бы тем для кого критична даже 1 лишняя инструкция, и таким разработчикам пришлось бы писать свой STL заново.
Таким разработчикам так и так придется писать свой STL заново. Простой пример: во имя ускорения я хочу чтобы std::list выделял память из заранее подготовленного буфера размером в тысячу элементов списка. Как мне создать этот самый буфер, если std::list не говорит сколько ему нужно памяти под один элемент списка? Гадать на кофейной гуще "ну, наверно sizeof(value_type)+sizeof(void*)*2"?
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
28.01.2018, 22:24
Цитата Сообщение от _stanislav Посмотреть сообщение
что это лично твое мнение
Судя по коду фреймверков ведущих производителей средств разработки это и их мнение тоже.
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
28.01.2018, 22:24
Цитата Сообщение от Renji Посмотреть сообщение
Как мне создать этот самый буфер, если std::list не говорит сколько ему нужно памяти под один элемент списка?
аллокатор не для этого в параметрах стоит?
0
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
28.01.2018, 22:27
Fulcrum_013,
можете привести хотя бы один пример плохого дизайна stl и свой аналог?
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
28.01.2018, 22:31
Цитата Сообщение от Renji Посмотреть сообщение
Таким разработчикам так и так придется писать свой STL заново.
А вместо него под серьезные задачи все равно обычно что то более другое пользуется
Т.е. по большому счету STL годен разве что для хеллоувердов и то ограниченно.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
28.01.2018, 22:33
Цитата Сообщение от _stanislav Посмотреть сообщение
аллокатор не для этого в параметрах стоит?
Не для того.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
//Откуда мне на стадии компиляции взять objectSize и objectAlign? std::list то этой инфы не дает
template<std::size_t objectSize,std::size_t objectAlign,std::size_t poolSize>
class PoolAllocator
{
public:
    void*allocate()
    {
        void*res=nullptr;
        if(freeList)
        {
            res=freeList;
            freeList=freeList->next;
        }else if(unusedMem!=pool+poolSize)
            res=unusedMem++;
        return res;
    }
 
    void deallocate(void*mem)
    {
        Object*object=(Object*)mem;
        object->next=freeList;
        freeList=object;
    }
 
private:
    using ValueType=std::aligned_storage<objectSize,objectAlign>;
    union Object
    {
        Object*next;
        std::aligned_storage<objectSize,objectAlign> storage;
    };
    Object*freeList=nullptr;
    Object*unusedMem=pool;
    Object pool[poolSize];
};
0
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
28.01.2018, 22:34
Renji,
Можно же создать свой аллокатор, посмотреть значение требуемое для аллокации, и опираясь на это значение создать буфер. Размер же передается пллокатору, Разве нет?
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
28.01.2018, 22:35
Цитата Сообщение от Undisputed Посмотреть сообщение
Можно же создать свой аллокатор, посмотреть значение требуемое для аллокации, и опираясь на это значение создать буфер. Разве нет?
Где посмотреть, в отладчике? Так цифры в отладчике зависят от конкретной платформы. И на соседней машине будут другими (например, из-за перехода с 32 бит на 64).
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
28.01.2018, 22:37
Цитата Сообщение от Undisputed Посмотреть сообщение
можете привести хотя бы один пример плохого дизайна stl и свой аналог?
выше смотри. Ну а вместо смартпоинтеров вообще абсолютно другая концепция - двунаправленные указатели. т.е. уников как таковых нет. есть слабовладеющие. при выходе из скопа похоронит объект если его до этого еще не похоронили со стороны или сам не похоронился. то же самое со списками объектов. удаляют из списков указатели на себя при удалении.
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
28.01.2018, 22:38
Цитата Сообщение от Undisputed Посмотреть сообщение
Размер же передается пллокатору, Разве нет?
На стадии выполнения. А мне надо на стадии компиляции, чтобы malloc не дергать.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
28.01.2018, 22:40
Цитата Сообщение от Undisputed Посмотреть сообщение
Можно же создать свой аллокатор, посмотреть значение требуемое для аллокации, и опираясь на это значение создать буфер. Размер же передается пллокатору, Разве нет?
а если память под тот же вектор живет не в системном ОЗУ а где то еще а поэлементное копирование неприменимо (к примеру железо в котором это живет может аппаратно копировать куски памяти типа как GPU)? Тут аллокаторами уже не отделаешься.
0
322 / 174 / 78
Регистрация: 09.10.2014
Сообщений: 809
28.01.2018, 22:43
Цитата Сообщение от Renji Посмотреть сообщение
Где посмотреть, в отладчике? Так цифры в отладчике зависят от конкретной платформы. И на соседней машине будут другими (например, из-за перехода с 32 бит на 64).
Еще раз прочтите)
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
28.01.2018, 22:47
Цитата Сообщение от Renji Посмотреть сообщение
Так цифры в отладчике зависят от конкретной платформы.
Там по идее размер одного указателя. Но опять же это тогда от реализации самой STL зависит и не факт что в комплекте другого компиляторе будет такая же реализация. Вообще чтобы была универсальность стандартизировать нужно не библиотеку а форматы данных. Вот что что а код библиотеки вместе с проектом отправить на другую платформу это не проблема. И даже с другой подобной библиотекой при одинаковом формате буферов и т.п состыковать тоже. А вот форматы буферов один в другой перекраивать при стыковке библиотек это действительно оверхед будет.
0
322 / 174 / 78
Регистрация: 09.10.2014
Сообщений: 809
28.01.2018, 22:47
Использовать sizeof уже нельзя?
0
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
28.01.2018, 22:51
Цитата Сообщение от lArtl Посмотреть сообщение
Использовать sizeof уже нельзя?
sizeof объекта ListNode, вовсе не обязательно равен сумме sizeof его элементов. Потому как есть такая штука как "выравнивание". А сам ListNode std::list не показывает. Пусть даже в форме "все потроха приватные, можно только размер посмотреть".
Цитата Сообщение от Undisputed Посмотреть сообщение
можете привести хотя бы один пример плохого дизайна stl и свой аналог?
Регулярки плохие - не умеют заглядывать назад. Нет, ну я понимаю когда Perl ругается "извините, заглядывание назад на произвольное число символов пока не поддерживается". Технические трудности и все такое. Но не в ноль же функционал урезают.
std::list/std::map не говорят сколько им надо памяти под один узел списка/дерева. Что несомненно очень облегчает создание кастомных аллокаторов, заточенных под элементы строго определенного размера.
Стринги - а можно выдерживать библиотеку в каком-то одном стиле? А то у стрингов индексы, во всем остальном STL итераторы.
И делать char знаковым или беззнаковым в зависимости от платформы, это вредительство. Хотя, это уже не вина STL.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.01.2018, 22:51

Вопрос к опытным раскрутчикам.
Два месяца назад заказал раскрутку своего сайта. Задача - 100 уникальных посетителей в сутки. Из запросов, по которым требовалось...

вопрос к опытным програмистам
вопрос такого рода - за сколько вы делаете сайт и какими методами 1. Сайт визитка 2. Сайт Блог 3. Сайт форум 4. Сайт продукции (...

Вопрос к опытным гуру
В общем краткая история проблемы. Есть сайт. Сайту 3 года примерно. Коммерческий проект, сделанный под свои конкретные задачи. На сайте...

Взываю к опытным php-шникам
Заранее прошу прощения если пишу не в той теме. В общем проблема такая. Есть галерея: &lt;div...

Нужен совет опытным верстальщиков ?
Используете ли вы повседневной верстке, в CSS такие свойства CSS3, как transform, transition, animation ? И, если да, то с какими...


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru