Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Это будет очередной топик плача по хорошему языку С++, который мог бы быть еще лучше, но стал хуже. Виноват в этом один человек, по фамилии Степанов. Ну и конечно другой человек Страустрап, который ему потакал в этом... Скажите, может ли функция в C++ вернуть более одного значения? Нет, не может. А скажите, как задается диапазон для обработки контейнера в любой функции STL? Парой итераторов, так? Ну и о чем думал этот Степанов, где у него мозги- то были? Как вызовы функций STL каскадировать? Можно только создавать новые и новые переменные и копировать данные, сейчас есть move semantics, а тогда-то не было... В общем, в очередной раз убеждаюсь, что STL--это худшее, что могло случиться с языком C++. ---- Читал хинты оракла. Много думал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 10:37 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Я не подстрекатель, но вот что предложено вместо итераторов в D https://dlang.org/phobos/std_range.html Возможно этот концепт еще где то есть. Упд - в Бусте есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 11:36 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Мне больше "нравится", что итераторы могут становиться невалидными и делятся на кучу несовместимых и специфических подтипов - константные, двунаправленные итп И тексты ошибки, которые при неверной подстановке генерятся =) Модератор: Прояснил сарказм, поставил "нравится" в кавычки. Правильно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 11:41 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
MasterZivСкажите, может ли функция в C++ вернуть более одного значения? Нет, не может. std::pair чем не более одного? )) MasterZivА скажите, как задается диапазон для обработки контейнера в любой функции STL? Парой итераторов, так? Ну и о чем думал этот Степанов, где у него мозги- то были? Как вызовы функций STL каскадировать? Написать обертку над стандартным шаблоном которая вместо двух итераторов принимает pair. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 12:49 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyMasterZivСкажите, может ли функция в C++ вернуть более одного значения? Нет, не может. std::pair чем не более одного? )) MasterZivА скажите, как задается диапазон для обработки контейнера в любой функции STL? Парой итераторов, так? Ну и о чем думал этот Степанов, где у него мозги- то были? Как вызовы функций STL каскадировать? Написать обертку над стандартным шаблоном которая вместо двух итераторов принимает pair. Так это должно было сразу ему на ум прийти! Сейчас-то и boost::range есть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 13:45 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
MasterZivЭто будет очередной топик плача по хорошему языку С++, который мог бы быть еще лучше, но стал хуже. Виноват в этом один человек, по фамилии Степанов. Ну и конечно другой человек Страустрап, который ему потакал в этом... Скажите, может ли функция в C++ вернуть более одного значения? Нет, не может. std::tuple. MasterZivА скажите, как задается диапазон для обработки контейнера в любой функции STL? Парой итераторов, так? А ты хотел чтобы алгоритмы принимали tuple'ы или что-то подобное? Нет. Они же всё-таки обобщённые и было бы сомнительно вводить тип range. Можешь сам в namespace std добавить соответствующие перегрузки, учитывая, что теперь есть std::begin и std::end MasterZivНу и о чем думал этот Степанов, где у него мозги- то были? Как вызовы функций STL каскадировать ? Пардоньте? Этот реквест boost::adaptors? MasterZivМожно только создавать новые и новые переменные и копировать данные, сейчас есть move semantics, а тогда-то не было... В общем, в очередной раз убеждаюсь, что STL--это худшее, что могло случиться с языком C++. Москва не сразу строилась (С) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 14:05 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Было бы интересно посмотреть проблемный кейз и разные варианты решений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 16:04 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Ребята, я не ищу решения проблемы "на сейчас", оно в общем очевидно. Я пытаюсь сказать о том, что STL -- это библиотека с изначально плохим дизайном. В 90-х не было буста, который всё исправляет, не было С++11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 16:14 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
авторА ты хотел чтобы алгоритмы принимали tuple'ы или что-то подобное? Хотел бы иногда... Собственно, при программировании std::map до них допёрло, что нужно multivalue начинать использовать, а во всех остальных случаях -- нет... авторНет. Они же всё-таки обобщённые и было бы сомнительно вводить тип range. А чем тебе range-и необобщённые или сомнительные ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 16:18 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Предположу, что при проектировании С++ хотели сохранить совместимость с языком С по максимуму насколько это возможно. А целью введения итераторов было обобщить концепцию указателей языка С так, что в алгоритмах можно будет использовать как указатели, так и итераторы. Вы же можете передать обычные указатели в алгоритмы STL. STL - это не худшее, а то, что было определено изначальной целью сохранить как можно большую степень совместимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 16:55 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
vitprofПредположу, что при проектировании С++ хотели сохранить совместимость с языком С по максимуму насколько это возможно. Так ну и где же там совместимость с С, в STL ? Что вместо итераторов можно использовать указатели ? А что, вместо указателей просто два смещения в последовательности (номера начала и конца обрабатываемой подпоследовательности) нельзя было использовать? vitprofА целью введения итераторов было обобщить концепцию указателей языка С так, что в алгоритмах можно будет использовать как указатели, так и итераторы. Вы же можете передать обычные указатели в алгоритмы STL. STL - это не худшее, а то, что было определено изначальной целью сохранить как можно большую степень совместимости. Не лучше ли было бы обобщать понятие "последовательность", индексируемая целыми неотрицательными числами, чем плохо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 17:13 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Вообще, вот тут расписано хорошо, как должно было бы быть... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 17:14 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
MasterZivНе лучше ли было бы обобщать понятие "последовательность", индексируемая целыми неотрицательными числами, чем плохо? Подразумевает ли, по вашему, такая индексация существование доступа к элементу по индексу за O(1)? Иначе зачем вообще индексировать? А как вы будете делать итератор по дереву? И зачем в этом случае индексирование элементов? Идея в бусте мне тоже нравится, позволяет сделать код компактнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 18:58 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
vitprofПодразумевает ли, по вашему, такая индексация существование доступа к элементу по индексу за O(1)? Нет. Это вообще никак не связанные вещи. vitprofИначе зачем вообще индексировать? Я не понял. vitprofА как вы будете делать итератор по дереву? И зачем в этом случае индексирование элементов? Все алгоритмы обхода деревьев (графов), которые я знаю, предполагают если я не ошибаюсь расположение всех узлов в последовательности их обхода, которая соотносится с множеством целых неотрицательных чисел. Так что не вижу проблем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 21:00 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
MasterZivvitprofПодразумевает ли, по вашему, такая индексация существование доступа к элементу по индексу за O(1)? Нет. Это вообще никак не связанные вещи. Очень даже связанные. MasterZivНе лучше ли было бы обобщать понятие "последовательность", индексируемая целыми неотрицательными числами, чем плохо? Именно тем и плохо что даже при O(1) будет медленнее чем сейчас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 21:05 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Мдя... Степанов - типичный промышленник. Не математик. И я думаю что у него инженерная мысль преобладала над теоретической или математической. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 21:30 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Степанов у меня ассоциируется только вот с этим текстом . Давно про него ничего не слышно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 21:49 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
MasterZivВообще, вот тут расписано хорошо, как должно было бы быть... Не, это слишком красиво получается, так нельзя, где же итераторы, генераторы, указатели: http://melpon.org/wandbox/permlink/RWpimapjAr4immS5 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Интересно, хоть в <experimental> в C++17 это войдет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 22:23 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Вася Уткин, вот от том и речь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 23:13 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
войдет или нет - другой вопрос, Кто мешал так сделать сразу, еще в 90? за двадцать лет у людей на порядок в лучшую сторону мозги изменились? нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 23:15 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Вася УткинНе, это слишком красиво получается, так нельзя, где же итераторы, генераторы, указатели: http://melpon.org/wandbox/permlink/RWpimapjAr4immS5 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. А можно какой-то другой пример? А то я че-то не сильно вижу преимущества по сравнению со следующим эквивалентным кодом на STL. Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2016, 23:53 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
MasterZivвойдет или нет - другой вопрос, Кто мешал так сделать сразу, еще в 90? за двадцать лет у людей на порядок в лучшую сторону мозги изменились? нет. Здесь есть связь, если в 90х то там много поводов могло быть, начиная от совместимости с указателями С, до ручного определения когда inplace, а когда в другой массив копируем результат. Тогда boost-овых реализаций не было, а в C++ было куча других проблем. А вот почему в C++11 это не сделали, когда уже готовые реализации были и все плюсы видны? Без boost можно получить тот же результат, не так же красиво, но поиграться можно: http://melpon.org/wandbox/permlink/WZ3UgdcGitcng1hD Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2016, 01:28 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Вася Уткин, Я вот не пойму все-таки, с чего это вдруг каскадирование - это плюс? Как и вообще функциональные идиомы ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2016, 01:53 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyВася УткинНе, это слишком красиво получается, так нельзя, где же итераторы, генераторы, указатели: http://melpon.org/wandbox/permlink/RWpimapjAr4immS5 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. А можно какой-то другой пример? А то я че-то не сильно вижу преимущества по сравнению со следующим эквивалентным кодом на STL. Код: plaintext 1. 2. 3. 4. 5. 6. 90 символов против 210 :) Anatoly MoskovskyВася Уткин, Я вот не пойму все-таки, с чего это вдруг каскадирование - это плюс? Как и вообще функциональные идиомы ))) Ну до auto это было супер круто - избавление от километровых объявлений итераторов. А сейчас пара плюсов: 1. короче код и сразу понятно, что делает 2. итераторы - это лишняя возможность вынести работу с разделяемым контейнером за критическую секцию при многопоточности 3. хорошо сочетается с execute around idiom Хотя непонятно насколько это удобно будет для алгоритмов работающих сразу с несколькими векторами, и возвращающих несколько векторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2016, 02:18 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Вася Уткин1. короче код и сразу понятно, что делает Наоборот. Функциональная запись предполагает отсутствие побочных эффектов. А там - один на другом ))) Поэтому вовсе не понятно что там происходит. Да и чисто с практической точки зрения, запись в одну большую формулу почти всегда менее читаема чем разбитый на простые шаги код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2016, 02:31 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyВася Уткин1. короче код и сразу понятно, что делает Наоборот. Функциональная запись предполагает отсутствие побочных эффектов. А там - один на другом ))) Поэтому вовсе не понятно что там происходит. Да и чисто с практической точки зрения, запись в одну большую формулу почти всегда менее читаема чем разбитый на простые шаги код. Не знаю, мне все понятно, никаких побочных эффектов, только нужные Хотя такая запись была бы понятней: Код: plaintext 1. чем такая: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2016, 02:50 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Вася УткинНе знаю, мне все понятно, никаких побочных эффектов, только нужные Это тут понятно, с тривиальным примером. Вася УткинХотя такая запись была бы понятней: Код: plaintext 1. Ну, такая возможность (uniform call syntax) предложена в стандарт. Но пока не договорились (Саттер против Страуструпа). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2016, 03:31 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyВася УткинНе знаю, мне все понятно, никаких побочных эффектов, только нужные Это тут понятно, с тривиальным примером. Вася УткинХотя такая запись была бы понятней: Код: plaintext 1. Ну, такая возможность (uniform call syntax) предложена в стандарт. Но пока не договорились (Саттер против Страуструпа). А почему Страуструп против? Самый понятный код из всех представленных здесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2016, 03:36 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
SashaMercuryА почему Страуструп против? Они оба за. Не сошлись в деталях )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2016, 03:47 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
MasterZivvitprofА как вы будете делать итератор по дереву? И зачем в этом случае индексирование элементов? Все алгоритмы обхода деревьев (графов), которые я знаю, предполагают если я не ошибаюсь расположение всех узлов в последовательности их обхода, которая соотносится с множеством целых неотрицательных чисел. Так что не вижу проблем. проблема в вычислительной сложности такого обхода, доступ по индексу за логарифмическое время возможен на довольно экзотических деревьях типа весо-сбалансированного двусвязный список и производные вроде LinkedHashMap вообще индексировать не очень получится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2016, 07:52 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)MasterZivпропущено... Все алгоритмы обхода деревьев (графов), которые я знаю, предполагают если я не ошибаюсь расположение всех узлов в последовательности их обхода, которая соотносится с множеством целых неотрицательных чисел. Так что не вижу проблем. проблема в вычислительной сложности такого обхода, доступ по индексу за логарифмическое время возможен на довольно экзотических деревьях типа весо-сбалансированного двусвязный список и производные вроде LinkedHashMap вообще индексировать не очень получится Ну да, если не требуется доступ по индексу к элементу, либо такой доступ не рационален, то смысла в индексации (нумерации) элементов нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2016, 09:00 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyВася Уткин1. короче код и сразу понятно, что делает Наоборот. Функциональная запись предполагает отсутствие побочных эффектов. А там - один на другом ))) ФП предполагает отсутствие побочных эффектов, да. И для этого каждая функция должа свой результат возвращать в виде выходного значения. Можешь мне рассказать, как такое можно сделать в С++ на паре итераторов ? Вот о том и речь, собственно, с этого всё и началось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2016, 09:12 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
MasterZivAnatoly Moskovskyпропущено... Наоборот. Функциональная запись предполагает отсутствие побочных эффектов. А там - один на другом ))) ФП предполагает отсутствие побочных эффектов, да. И для этого каждая функция должа свой результат возвращать в виде выходного значения. Можешь мне рассказать, как такое можно сделать в С++ на паре итераторов ? Вот о том и речь, собственно, с этого всё и началось. Ну тогда и boost-овая реализация не совсем то - она меняет исходный вектор: http://melpon.org/wandbox/permlink/ANBEoapWX20DCrRc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2016, 13:32 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
MasterZivИ для этого каждая функция должа свой результат возвращать в виде выходного значения. Можешь мне рассказать, как такое можно сделать в С++ на паре итераторов ? Вот о том и речь, собственно, с этого всё и началось. Ну вот там выше бустовские range, которые по-вашему пример того как должно быть. Но это всего лишь синтаксический сахар над итераторами. Суть их та же - аргументы когда надо модифицируются по месту, а не возвращаются копией. Поэтому суть ваших претензий к итераторам, при одобрении range, непонятна. )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2016, 13:53 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Вася УткинMasterZivпропущено... ФП предполагает отсутствие побочных эффектов, да. И для этого каждая функция должа свой результат возвращать в виде выходного значения. Можешь мне рассказать, как такое можно сделать в С++ на паре итераторов ? Вот о том и речь, собственно, с этого всё и началось. Ну тогда и boost-овая реализация не совсем то - она меняет исходный вектор: http://melpon.org/wandbox/permlink/ANBEoapWX20DCrRc Алгоритмы разные бывают, есть и те, которые не меняют. Речь про другое, что если они не меняют, то они возвращают значение в виде итеретора-вставки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2016, 13:54 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyВася УткинНе знаю, мне все понятно, никаких побочных эффектов, только нужные Это тут понятно, с тривиальным примером. Вася УткинХотя такая запись была бы понятней: Код: plaintext 1. Ну, такая возможность (uniform call syntax) предложена в стандарт. Но пока не договорились (Саттер против Страуструпа). Вот для inplace я сделал бы так: Код: plaintext 1. А для работы в отдельном векторе так: Код: plaintext 1. Причем именно через ->, а точку . бы захламлять не стал: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4474.pdf Могли бы добавить ключ в GCC для включения Unified Call Syntax, чтобы люди проверили не ломает ли их код такая штука. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2016, 14:07 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Вася УткинПричем именно через ->, а точку . бы захламлять не стал: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4474.pdf Могли бы добавить ключ в GCC для включения Unified Call Syntax, чтобы люди проверили не ломает ли их код такая штука. Не получится, там именно точка дожна быть, потому как возвращать они должны ПО ЗНАЧЕНИЮ. Иначе надо было бы переопределять их, чтобы они возвращали указатели на непонятно кем созданные переменные и непонятно кем их тогда удалять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2016, 15:00 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
MasterZivНе получится, там именно точка дожна быть, потому как возвращать они должны ПО ЗНАЧЕНИЮ. Иначе надо было бы переопределять их, чтобы они возвращали указатели на непонятно кем созданные переменные и непонятно кем их тогда удалять. Как раз то для чего нужен unique_ptr :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2016, 15:12 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Получилось чето типа такого. Код: plaintext 1. Можно и с копией работать - 1й вариант, и с исходным вектором - 2й вариант. В algo_t можно любых алгоритмов унифицированно понатыкать из <algorithm> http://melpon.org/wandbox/permlink/DNWV0VGHWOz5XcrW Код: plaintext 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. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. автор1, 2, 3, 5, 1, 5, 3, 2, 1, 1, 1, 2, 3, 5, 1, 2, 3, 5, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2016, 00:15 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
MasterZivЭто будет очередной топик плача по хорошему языку С++, который мог бы быть еще лучше, но стал хуже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2016, 18:46 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
MasterZivЭто будет очередной топик плача по хорошему языку С++, который мог бы быть еще лучше, но стал хуже. Скажите, может ли функция в C++ вернуть более одного значения? Нет, не может. Читал хинты оракла. Много думал...[/i] Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2016, 11:15 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Lepsik, это как: - можно ли построить вечный двигатель? - можно! надо только чтобы кто-то ручку постоянно крутил! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2016, 11:24 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Lepsik, я внимательно прочел твое сообщение и не увидел смайлика. Где смайлик? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2016, 21:25 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
maytonLepsik, я внимательно прочел твое сообщение и не увидел смайлика. Где смайлик? Да не все совершенно в Ц++, но всегда есть куда двигатся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2016, 05:01 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
LepsikДа не все совершенно в Ц++, но всегда есть куда двигатся. в недобрый час вы про это заговорили как вам такой синтаксис? Код: plaintext 1. 2. 3. 4. 5. 6. 7. а вообще про параметры-ссылки кто-нибудь ещё помнит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2016, 05:28 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
CEMbа вообще про параметры-ссылки кто-нибудь ещё помнит? Про параметры-ссылки помнят все. Но надо еще вспомнить про рекурсию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2016, 08:24 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
LepsikmaytonLepsik, я внимательно прочел твое сообщение и не увидел смайлика. Где смайлик? Да не все совершенно в Ц++, но всегда есть куда двигатся. А ладно... ты меня не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2016, 08:29 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
maytonПро параметры-ссылки помнят все. Но надо еще вспомнить про рекурсию.с т.з. рекурсии нет разницы, как возвращать результаты. Или я тоже тебя не понял? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2016, 10:54 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
CEMbкак вам такой синтаксис? Код: plaintext 1. 2. 3. 4. 5. 6. 7. Так вот же: Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2016, 16:10 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Вообще, boost::range хорошо лечит исходную проблему топика . Изучать, использую, нравится... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2016, 19:39 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
CEMbmaytonПро параметры-ссылки помнят все. Но надо еще вспомнить про рекурсию.с т.з. рекурсии нет разницы, как возвращать результаты. Или я тоже тебя не понял? Я боюсь что мы друг друга не поняли. Нарисуй пожалуйста твой пример с возвратом трех параметров из фунции через ссылки и я дополню твой пример своей мыслью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2016, 20:22 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
mayton, А можно вот этот пример дополнить этой же мыслью? )) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2016, 20:50 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, это весьма неудачный пример расчета факториала. Я по сабжу вообще скептически относился ко всем подобным "удачным" примерам рекурсии. Но данный пример еще плох тем что он не safe-threaded. Но в любом случае данный пример плох. С одним ссылочным аргументом или с тремя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2016, 21:15 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
maytonпример плох Пока получается что пример плох, потому что выясняется что рекурсия возврату по ссылке не помеха. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 00:15 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyТак вот жеухты, спасибо. А return{...} - это с++14? Хотя вроде бы инициализация листом была в C++11? В общем, у меня в 2013 не компилится, только make_tuple. Код: plaintext 1. std:tie есть, оказывается. Почти тоже самое Код: plaintext 1. maytonНо данный пример еще плох тем что он не safe-threadedя, конечно, новичок во всех этих с++-ных операциях, но мне кажется, что safe-threaded тут ни причём, тут ФП в чистом виде. Нарисуй пожалуйста твой пример с возвратом трех параметров из фунции через ссылкину пусть будет так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 05:44 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
CEMbА return{...} - это с++14? Хотя вроде бы инициализация листом была в C++11? В общем, у меня в 2013 не компилится, только make_tuple. Это С++11. Просто Студия 2013 видимо не все поддерживает. CEMbчто safe-threaded тут ни причём Конечно не причем. Там с потокобезопасностью все ок. mayton как обычно себе нафантазировал ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 13:23 |
|
||
|
Ненавижу итератор...
|
|||
|---|---|---|---|
|
#18+
Ребята, что вы спорите ? Конечно, функциональное программирование в чистом виде (почти)невозможно в С++, особенно с использованием STL. Потому что функции (алгоритмы STL) НЕ ВОЗВРАЩАЮТ свой результат. Но ПСЕВДОфункциональное программирование, т.е. программирование с использованием функций высших порядков и без использования императивного кода (if, while, for) для обработки данных вполне себе возможно. Это нельзя назвать ФП, но элементы ФП в этом есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 13:34 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2018432]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
75ms |
get tp. blocked users: |
1ms |
| others: | 288ms |
| total: | 464ms |

| 0 / 0 |
