Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.59/27: Рейтинг темы: голосов - 27, средняя оценка - 4.59
Tenarius
0 / 0 / 0
Регистрация: 04.12.2016
Сообщений: 29
1

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

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

Здравствуйте, я начал изучать С++. Есть определенный план обучения. Например: сначала изучить синтаксис, принцип ООП, контейнеры STL, стандарты С++11/C++14. Вопрос звучит так: что можно еще добавить в список для изучения? Я еще не определился в какой сфере хочу использовать язык, что нужно знать вообще не привязанная к определенной области?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.01.2018, 16:56
Ответы с готовыми решениями:

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

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

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

Std::ios_base::sync_with_stdio [обращение к опытным]
Читал статью о том на сколько медленный iostream и там упоминалось о std::ios_base::sync_with_stdio...

Всем программистам!
Нужна ваша помощь! Завтра у меня олимпиада по программированию! так вот мне нужно решить 4 задачи...

254
Nishen
674 / 437 / 223
Регистрация: 26.02.2015
Сообщений: 2,028
Завершенные тесты: 3
25.01.2018, 17:01 2
Многопоточное программирование, сетевое программирование.

Добавлено через 25 секунд
Что писать потом хотите? Если под Unix-системы, то читайте про Unix еще, за одно и C почитайте.

Добавлено через 1 минуту
Цитата Сообщение от Tenarius Посмотреть сообщение
сначала изучить синтаксис
Цитата Сообщение от Tenarius Посмотреть сообщение
стандарты С++11/C++14
Читайте Страуструпа, у него в книге сразу дается C++11/C++14.
0
COKPOWEHEU
2135 / 1260 / 290
Регистрация: 09.09.2017
Сообщений: 5,122
25.01.2018, 20:13 3
Поддерживаю Nishen. Выберите диапазон интересных для вас задач и под них подбирайте последовательность изучения и язык.
Скажем, в программировании контроллеров практически не используются динамическое выделение памяти и виртуальные методы.
А в разработке приложений с развитым GUI, упор идет именно на графические библиотеки.
Отдельная область - криптография. За исключением отдельных областей, глубоко погружаться в теорию не надо.
0
Fulcrum_013
Заблокирован
25.01.2018, 20:32 4
Цитата Сообщение от Tenarius Посмотреть сообщение
еще не определился в какой сфере хочу использовать язык, что нужно знать вообще не привязанная к определенной области?
Синтаксис и принципы ООП. STL же вообще мало в каких областях применима но знать ее надо не только снаружи но и изнутри на ять. хотя бы для того чтобы не делать тех же ошибок что и ее разрабы.
0
25.01.2018, 20:32
lArtl
312 / 165 / 77
Регистрация: 09.10.2014
Сообщений: 794
Завершенные тесты: 3
25.01.2018, 20:54 5
Мимо проходил, но не стоит зацикливаться только на языке, надо изучать технологии.
1
_stanislav
(50 / 50 || 80 / 20) ?
1282 / 854 / 336
Регистрация: 16.08.2014
Сообщений: 3,492
Завершенные тесты: 2
25.01.2018, 22:06 6
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
хотя бы для того чтобы не делать тех же ошибок что и ее разрабы.

Не по теме:

ты сначала свою tl создай прежде чем винить разработчиков в ошибках, и выложи, а то хаешь уже не первый пост разработчиков stl.

из stl много чего хорошего можно подчеркнуть, не только работу над ошибками.
0
Fulcrum_013
Заблокирован
25.01.2018, 23:19 7

Не по теме:

Цитата Сообщение от _stanislav Посмотреть сообщение
ты сначала свою tl создай прежде чем винить разработчиков в ошибках, и выложи, а то хаешь уже не первый пост разработчиков stl.
А я исклюючительно со своей и работаю. причем она у меня появилась еще задолго до того как лисопед DinkumWare пиарить начали.



Добавлено через 1 минуту
Цитата Сообщение от _stanislav Посмотреть сообщение
из stl много чего хорошего можно подчеркнуть, не только работу над ошибками.
из нее можно подчерпнуть исключительно способ превращения использующего ее кода в нечитабельный говнокод. Мало того она насквозь unsafe. Что смартпоинтеры что итераторы.
0
Mirmik
techpriest
631 / 210 / 57
Регистрация: 27.02.2014
Сообщений: 1,161
26.01.2018, 09:14 8
Великая стандартная библиотека слвершенна. Незнающий красоты ее пребывает в неведении.

Добавьте на будущее в список изучения любой другой язык программирования. Изучая второй язык, гораздо лучше понимаешь первый.
1
Kastaneda
Jesus loves me
Эксперт С++
5058 / 3076 / 351
Регистрация: 12.12.2009
Сообщений: 7,774
Записей в блоге: 2
Завершенные тесты: 1
26.01.2018, 10:03 9
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Мало того она насквозь unsafe
у тебя 6 опечаток в слове fast
7
Starikov
13 / 15 / 5
Регистрация: 16.10.2016
Сообщений: 206
Завершенные тесты: 1
26.01.2018, 10:34 10
Хочу научиться программировать на C++: с чего начать?
План по изучению С++
Две полезные ссылки, одна по плану изучения С++, другая план чтения по С++.
0
Fulcrum_013
Заблокирован
27.01.2018, 01:05 11
Цитата Сообщение от Kastaneda Посмотреть сообщение
у тебя 6 опечаток в слове fast
Давайте не будем холивар затевать. то что она не просто unsafe а реально диверсия в плане надежности доказывается как два пальца об асфальт.
0
Tenarius
0 / 0 / 0
Регистрация: 04.12.2016
Сообщений: 29
27.01.2018, 01:11  [ТС] 12
Спасибо вам ребята!
0
_stanislav
(50 / 50 || 80 / 20) ?
1282 / 854 / 336
Регистрация: 16.08.2014
Сообщений: 3,492
Завершенные тесты: 2
27.01.2018, 22:13 13
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
доказывается как два пальца об асфальт
за слова отвечать будешь? или будешь просто красивые словечки говорить?
0
Fulcrum_013
Заблокирован
27.01.2018, 22:36 14
Цитата Сообщение от _stanislav Посмотреть сообщение
за слова отвечать будешь? или будешь просто красивые словечки говорить?
Начнем со смартпоинтерров. Что будет со смартпоинтером если объект на который он ссылается сделает delete this?
Продолжим итераторами - на кого выльет сталь сталевоз если функциям из algorithm дать итераторы от разных инстансов контейера? А при нормальной архитектуре библиотеки невозможность такой ситуации гарантируется.
0
Croessmah
++Ͻ
15958 / 9068 / 1746
Регистрация: 27.09.2012
Сообщений: 22,316
Записей в блоге: 2
Завершенные тесты: 2
28.01.2018, 09:06 15
Fulcrum_013, а если твои safe объекты удалить с помощью free(this), они не разваляться? Ну, т.е. если специально делать что-то через жопу, например, пасситижами брови щипать, то это конечно же проблемы пасситиж, а не дурака. Ваше мнение и доводы давно понятны - специально сделаю адскую хрень, и спишу всё на инструмент.
4
Fulcrum_013
Заблокирован
28.01.2018, 09:18 16
Цитата Сообщение от Croessmah Посмотреть сообщение
Ну, т.е. если специально делать что-то через жопу
Ну почему же специально? К примеру от опечаток в указании итератора никто не застрахован. А тем более в том говнокоде который получается в случае использования фигни из algorithm.
Цитата Сообщение от Croessmah Посмотреть сообщение
а если твои safe объекты удалить с помощью free(this), они не разваляться?
Да ради бога. Только деструкторы не забываем вызывать в правильном порядке и все ок. Кстати на паскакале тока так и делают посикоку у них new и delete с автовызовом конструкторов/деструкторов не изобрели.
0
Croessmah
++Ͻ
15958 / 9068 / 1746
Регистрация: 27.09.2012
Сообщений: 22,316
Записей в блоге: 2
Завершенные тесты: 2
28.01.2018, 09:29 17
Fulcrum_013, к примеру от того чтобы забыть вызвать деструктор никто не застрахован... Вы же специально пишите код так, чтобы в нем всё развалилось, а потом списываете это на библиотеку. А другие пишут так, что ничего не разваливается. Вон, тот же малоизвестный CryEngine использует STL и ничего, живет как-то.
1
Fulcrum_013
Заблокирован
28.01.2018, 09:51 18
Croessmah,
Вам не кажется что к примеру вот такой интерфейс будет гораздо читабельнее и безопасней:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 Container1.Range(1,10)=Container2.Range(6,10);// копирование с заменой региона
 Container1.Range(1,10)<<Container2.Range(6,10);// перенос с заменой региона
 Container1+=Container2.Range(6,10); // добавление копий в конец
 Container1<<=Container2.Range(6,10); // перенос элементов в конец
 Container1.Pos(8)+=Container2.Range(6,10); //вставка копий 
 Container1.Pos(8)<<Container2.Range(6,10); //вставка с переносом элементов 
 Container.Range(1,10).Delete(); // удаление элементов
// ну и так далее. Да кстати Step(n) и Reversed у источников тоже никто не запрещал в любом порядке следования. 
//Так же как и запомнить любой возвернутый этими методами диапазон и прогнать по нему ranged for ну типа вот так
 
for (auto &v:Container.Range(1,10),Step(2).Reversed)
//или даже вот так 
for (auto &v:Container.Reversed.Step(2).Range(1,10))
//куда читабельнее и безопаснее чем в STL
Добавлено через 6 минут
Цитата Сообщение от Croessmah Посмотреть сообщение
Вы же специально пишите код так, чтобы в нем всё развалилось, а потом списываете это на библиотеку.
Я пишу код так чтобы он работал надежно. При этом пользуется концепция принятия решений теми объектами которые имеют для этого достаточную полноту данных. Если какая то библиотека к этому не приспособлена это всего лишь означает что ее концепция устарела еще в 70-ых.

Добавлено через 1 минуту
Цитата Сообщение от Croessmah Посмотреть сообщение
Вон, тот же малоизвестный CryEngine использует STL и ничего, живет как-то.
Подозреваю что очень хреново живет.
0
Renji
2552 / 1747 / 525
Регистрация: 05.06.2014
Сообщений: 5,079
28.01.2018, 09:59 19
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Вам не кажется что к примеру вот такой интерфейс будет гораздо читабельнее и безопасней:
В таком интерфейсе тоже можно написать Container2.Range(-5,999999999). А потом окажется что проверка на подобные бредовые аргументы была, но в релиз-сборке отключилась.
Хотя да, сами по себе методы копирования типа vector1.insert_back(vector2,0,5) не помешали бы.
0
Fulcrum_013
Заблокирован
28.01.2018, 10:16 20
Цитата Сообщение от Renji Посмотреть сообщение
А потом окажется что проверка на подобные бредовые аргументы была, но в релиз-сборке отключилась.
ну и зачем ее на диапазоны отключать? Скорости от этого особо не прирастет, это не произвольный доступ где это критично.
А вот возможность Range(1,-1) - со второго до предпоследнего - потеряется.

Добавлено через 1 минуту
Цитата Сообщение от Renji Посмотреть сообщение
Хотя да, сами по себе методы копирования типа vector1.insert_back(vector2,0,5) не помешали бы.
фигушки оно в stl буде. копирование с вектора в список и из списка в вектор несовместимы и фиг они это разрулят без отой порнографии под названием algorithm пока ООП не освоят.

Добавлено через 8 минут
Цитата Сообщение от Renji Посмотреть сообщение
А потом окажется что проверка на подобные бредовые аргументы была, но в релиз-сборке отключилась.
Кстати так о птичках весь ранж чекинг нужен только для того чтобы отловить ошибки вычисления индексации в дебаге. Екскепшин вылетевший в продакшине вылить сталь куда надо а не на горе-разраба ну аж никак не поможет при всем желании.
0
28.01.2018, 10:16
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2018, 10:16

Программистам спросить хочу
1.Что должен уметь и знать каждый программист - в чем разбираться? Есть ли некий стандарт без...

Несколько вопросов к программистам.
Доброго времени суток! я начинающий, последние пару месяцев делал упор на изучение Си, WinAPI и...

Вопрос к программистам, имеющим опыт
Прошу прощения - возможно, подобные вопросы задавались много раз. Хотелось бы узнать, как и с чего...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.