Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryMasterZiv q1 Как использовать существующий функционал С++ для поиска min в столбцах матрицы? ну, по хитрому вычислять индексы в матрице, и в цикле на range обрабатывать. или в for each. Не может кто-нибудь привести конкретный пример, пожалуйста http://ideone.com/wama4t Код: 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. Пара плюсов: 1. Работает для любых типов, для которых определен < 2. Чем хороши стандартные алгоритмы, что при необходимости легко можно использовать их параллельные версии: thrust::transform для распараллеливания на CPU или GPU - в зависимости от типа переданного вектора. Можно ставить на CPU-only машины. Или в будущем когда разродятся в стандарте std::experimental::parallel::transform для распараллеливания на CPU. А алгоритмов распаралеленных там много: https://thrust.github.io/doc/namespacethrust.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2016, 16:51 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
Dima TmaytonТак что решили? 5-мерным массивам дать жизнь? Или обойдемся проекциями на одномерный? ИМХУ Задачу надо конкретную. Под нее структуру хранения выбирать. Мне послышался тезис об изменениях в language. А как можно language - под задачу? Нонсенс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2016, 20:03 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
maytonDima Tпропущено... ИМХУ Задачу надо конкретную. Под нее структуру хранения выбирать. Мне послышался тезис об изменениях в language. А как можно language - под задачу? Нонсенс. Все можно, но с дуру можно и ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2016, 20:50 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
Вася Уткин, то, что вы привели, является так называемой "хорошей практикой" ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2016, 15:13 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
Dima TSashaMercury0.Пусть у нас есть двумерный массив: Код: plaintext 1. 2. 3. 4. Выделяй память одним большим куском Код: plaintext 1. 2. Какие в таком случае будут преимущества? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.08.2016, 15:13 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
Изопропилв c++ забыли/не захотели сделать полноценные многомерные массивы Правда, почему их нет? Сейчас дорабатываю один численный алгоритм, оперирую несколькими массивами массивов, на динамическое выделение памяти уходит 4 строчки, столько же на освобождение. Можно написать свою функцию для этого, но хотелось бы чтобы это уже было на уровне языка. Неужели этого нет в С++? Мне кажется, что я что-то просто не знаю о его возможностях ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 09:28 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryКакие в таком случае будут преимущества? Возможно Дима ратовал за экономию памяти. Дешевле 1 кусок в 100 байт чем 100 кусков по 1 байту. Плюс если ты используешь "зубчатые" массивы массивов то там теоретически тоже может быть экономия. Но это все в теории невозможно подсчитать. Лучше создать два макета и посмотреть как оно будет практически. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 09:59 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryоперирую несколькими массивами массивов сравни массив массивов с массивами в Algol-68 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 10:13 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryСейчас дорабатываю один численный алгоритм, оперирую несколькими массивами массивов, на динамическое выделение памяти уходит 4 строчки, столько же на освобождение. Можно написать свою функцию для этого, но хотелось бы чтобы это уже было на уровне языка. Неужели этого нет в С++? SashaMercury, твой код не имеет ничего общего с С++ . SashaMercuryЗдравствуйте. 0.Пусть у нас есть двумерный массив: Код: plaintext 1. 2. 3. 4. malloc - это старый добрый С. А в С можно объявлять массивы переменного размера (но размер указывается только при объявлении). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 11:57 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
BagaBagaSashaMercuryСейчас дорабатываю один численный алгоритм, оперирую несколькими массивами массивов, на динамическое выделение памяти уходит 4 строчки, столько же на освобождение. Можно написать свою функцию для этого, но хотелось бы чтобы это уже было на уровне языка. Неужели этого нет в С++? SashaMercury, твой код не имеет ничего общего с С++ . SashaMercuryЗдравствуйте. 0.Пусть у нас есть двумерный массив: Код: plaintext 1. 2. 3. 4. malloc - это старый добрый С. А в С можно объявлять массивы переменного размера (но размер указывается только при объявлении). По существу вы не правы. Но даже если бы вы были правы, это не принципиально, замените malloc на new и получите те-же 4 строчки. Если у вас есть другое решение, то я буду очень рад его увидеть. Мне кажется что оно есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 12:14 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryПравда, почему их нет? Потому что 1) у всех разные требования 2) их не проблема самому реализовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 12:42 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryПо существу вы не правы. Отличная аргументация! С чего бы это? Не покажете то существо, по которому я не прав? Ну и пункт стандарта С++, описывающий malloc как часть C++ или его стандартной библиотеки ... Всё прекрасно работает Код: plaintext 1. 2. 3. 4. 5. Обратите внимание - ни одного new/delete или malloc/free. Разумеется, откомпилится __только__ как С-код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 13:29 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
BagaBagaSashaMercuryПо существу вы не правы. Отличная аргументация! С чего бы это? Не покажете то существо, по которому я не прав? Ну и пункт стандарта С++, описывающий malloc как часть C++ или его стандартной библиотеки ... Всё прекрасно работает Код: plaintext 1. 2. 3. 4. 5. Обратите внимание - ни одного new/delete или malloc/free. Разумеется, откомпилится __только__ как С-код. С++ http://ideone.com/zbo3D9 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 13:34 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
BagaBagaВсё прекрасно работает Код: plaintext 1. 2. 3. 4. 5. Поработает до чего-то подобного Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 13:41 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
BagaBagaНу и пункт стандарта С++, описывающий malloc как часть C++ или его стандартной библиотеки ... Appendix C.2 п.7 Ну и по всему стандарту конечно есть куча упоминаний, про то что большинство конструкций и библиотек С являются частью С++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 13:50 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
BagaBagaSashaMercuryПо существу вы не правы. Отличная аргументация! С чего бы это? Не покажете то существо, по которому я не прав? Ну и пункт стандарта С++, описывающий malloc как часть C++ или его стандартной библиотеки ... Всё прекрасно работает Код: plaintext 1. 2. 3. 4. 5. Обратите внимание - ни одного new/delete или malloc/free. Разумеется, откомпилится __только__ как С-код. В последнем стандарте языка С это разрешено (объявление массива auto с размером, задаваемым переменной, т.е. в runtime), также добавлена alloca(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 14:00 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, вообще-то Appendix С посвящён обеспечению совместимости. С тем же успехом можно любую фичу, хоть из того же фортрана или явы, которая "доступна для обеспечния совместимости" объявлять частью С++. Вот только нужно ли? Ведь тогда и printf, и весь С-style ввод-вывод придётся признать как "часть С++"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 14:02 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
Dima TПоработает до чего-то подобного Код: plaintext 1. 2. Не беспокойтесь за переполнение стека раньше времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 14:10 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
MasterZivBagaBagaпропущено... Отличная аргументация! С чего бы это? Не покажете то существо, по которому я не прав? Ну и пункт стандарта С++, описывающий malloc как часть C++ или его стандартной библиотеки ... Всё прекрасно работает Код: plaintext 1. 2. 3. 4. 5. Обратите внимание - ни одного new/delete или malloc/free. Разумеется, откомпилится __только__ как С-код. В последнем стандарте языка С это разрешено (объявление массива auto с размером, задаваемым переменной, т.е. в runtime), также добавлена alloca(). Variable Length Array разрешен, начиная с С99. Но вы правы - и в последнем тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 14:13 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
BagaBagaвообще-то Appendix С посвящён обеспечению совместимости. Там написано что этот раздел описывает разницу между С и С++. И в частности C.2 п.7 говорит The C ++ standard library provides 209 standard functions from the C library (включая malloc). Мотивация (совместимость) тут не имеет значения. Главное "C ++ standard library provides", т.е. это часть С++. BagaBagaВедь тогда и printf, и весь С-style ввод-вывод придётся признать как "часть С++"... Естественно и printf - часть С++ - п.27.8.2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 14:42 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, тогда у вас весь С входит в С++ как его подмножество... В этом мы немного расходимся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 15:02 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
BagaBagaтогда у вас весь С входит в С++ как его подмножество... В этом мы немного расходимся. Не весь. Приложение С стандарта описывает какое подмножество С входит в С++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 15:07 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
Я понял почему мне не нравятся двумерные массивы. Они отчасти решают задачу sparse matrices, но если разработчик хочет полного решения то ему неизбежно нужна библиотека или фреймворк для поддержки этой сложной и интересной возможности. А так.. на уровне ЯП оно или не нужно или легко заменить на массив std::string ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 15:16 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
BagaBagaSashaMercuryСейчас дорабатываю один численный алгоритм, оперирую несколькими массивами массивов, на динамическое выделение памяти уходит 4 строчки, столько же на освобождение. Можно написать свою функцию для этого, но хотелось бы чтобы это уже было на уровне языка. Неужели этого нет в С++? SashaMercury, твой код не имеет ничего общего с С++ . SashaMercuryЗдравствуйте. 0.Пусть у нас есть двумерный массив: Код: plaintext 1. 2. 3. 4. malloc - это старый добрый С. А в С можно объявлять массивы переменного размера (но размер указывается только при объявлении). BagaBagaSashaMercuryПо существу вы не правы. Отличная аргументация! С чего бы это? Не покажете то существо, по которому я не прав? Ну и пункт стандарта С++, описывающий malloc как часть C++ или его стандартной библиотеки ... Всё прекрасно работает Код: plaintext 1. 2. 3. 4. 5. Обратите внимание - ни одного new/delete или malloc/free. Разумеется, откомпилится __только__ как С-код. 1. Если мой код не имеет ничего общего с С++, то с таким-же успехом вы можете утверждать что С++ не имеет ничего общего с Си. 2. Достаточно очевидно, что с аналогичным успехом можно использовать и оператор new 3. Я очень не хочу спорить по очевидным моментам как для вас, так и для меня и для всех остальных, думаю все друг друга прекрасно поняли. Выделение памяти на стеке меня совершенно не интересует ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 15:23 |
|
||
|
Двумерные массивы и С++
|
|||
|---|---|---|---|
|
#18+
SashaMercury1. Если мой код не имеет ничего общего с С++, то с таким-же успехом вы можете утверждать что С++ не имеет ничего общего с Си. 2. Достаточно очевидно, что с аналогичным успехом можно использовать и оператор new 3. Я очень не хочу спорить по очевидным моментам как для вас, так и для меня и для всех остальных, думаю все друг друга прекрасно поняли. Выделение памяти на стеке меня совершенно не интересует 1. Вы можете продолжать думать, что пишете на С++. И использовать malloc и new, printf и cout. Если так принято в вашей команде (если она есть). А приписывать мне чужой бред - не надо. 2. Современный С++ практически не использует оператор new. И это современный тренд развития С++. Если вам нужен контейнер с управлением памятью - используйте из библиотек (stl, boost, любая на ваш вкус, можете написать свою). Хоть vector, хоть dynarray эффективно прячут от программиста управление выделением памятью. Любое "ручное" выделение ресурса обязательно сопровождается стражем (освобождения) ресурса (RAII-идиома). 3. В чём __конкретно__ я не прав, и что же это за существо, по которому я не прав, вы так и не ответили. Выделение памяти на стеке или в куче - детали реализации. Если для решения задачи достаточно памяти стека, я возьму стек. Иначе - буду смотреть в кучу. Или специализированные аллокаторы. Если вы не можете предсказать режим и потребляемый объем памяти, то и с выделением в куче ... мало хорошего получите (что лучше - свалиться по стеку, или засвописть систему и свалиться уже тогда?) Вы всегда знаете, где именно будет выделена память тем или иным классом? Тем же string? А в случае small-string-optimization? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2016, 16:22 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39288718&tid=2018442]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
152ms |
get tp. blocked users: |
2ms |
| others: | 303ms |
| total: | 548ms |

| 0 / 0 |
