Этот баннер — требование Роскомнадзора для исполнения 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 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=33&tid=2018432]: |
0ms |
get settings: |
11ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
91ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 194ms |

| 0 / 0 |
