Email or username:

Password:

Forgot your password?
Мя :sparkles_lesbian:

Кто вообще блять решил, что итерироваться по многомерному массиву плоским итератором будет удобно

25 comments
Юніксоїд :flag_wbw:

@mo многомерный массив - это не массив указателей, надеюсь?

Мя :sparkles_lesbian:

Типа, вот у вас есть матрица

1 2 3
4 5 6
7 8 9

Вы пытаетесь проитерироваться, а вам вместо строк матрицы отдает 1 2 3 4 5 6 7 8 9

Удобно? Пиздец!

Юніксоїд :flag_wbw:

@mo итерироваться по строкам или столбцам?
Какой язык? Я классический Си обсуждаю

DELETED

@mo Зависит от того, что ты хочешь с этим делать. Может быть и удобно. Ну и циклы никто не отменял же.

Мя :sparkles_lesbian:

@tennoseremel нет. Это нихуя не удобно и негибко. Если надо работать с плоским итератором, он на изи делается из вложенных

DELETED

@mo Так так же «на изи» можешь воспользоваться циклами.

Мя :sparkles_lesbian:

@tennoseremel сортировать мне тоже циклами?

DELETED

@mo Сортировать ты будешь с помощью встроенных функций сортировки одномерного массива (если они есть), управляя обычными циклами. Или ты думаешь, система за тебя решит, в каком порядке тебе нужно измерения использовать?

Мя :sparkles_lesbian:

@tennoseremel дак как мне отсортировать строки, матрицы, если я НЕ МОГУ ЭТИМИ СТРОКАМИ МАНИПУЛИРОВАТЬ ДАЖЕ :blobcatgooglyholdingitsheadinitshands:

DELETED

@mo Итераторы это вообще не про сортировку :blobcatderpy:

Мя :sparkles_lesbian:

@tennoseremel итератор можно отсортировать через OrderBy. Похуй, что оно под капотом там аллоцирует, но можно

DELETED

@mo Не занимайся ерундой, просто возьми цикл в руки :blobcatgiggle:

Мя :sparkles_lesbian:

@tennoseremel ок, цикл. Дальше что? Даже если предположить, что я напишу ручками пузырьковую сортировку, как мне банально поменять две строки местами? Ещё один ебаный цикл писать?

DELETED replied to Мя

@mo
1. Ты сортируешь или две строки меняешь местами? Во втором случае, тебе никакие циклы не нужны.

2. Если сортируешь — посмотри, какие есть готовые сортировки в языке. Они есть? Ну не может же не быть :blobcatderpy: Пузырёк это здорово, но не всегда адекватно данным.

Мя :sparkles_lesbian: replied to DELETED

@tennoseremel я сортирую строки. По ключу, в данном случае - минимальному её элементу

DELETED replied to Мя

@mo И что тебе мешает в функцию сортировки передать этот подмассив? Если я правильно понимаю о чём ты.

Мя :sparkles_lesbian: replied to DELETED

@tennoseremel мне нужно сами строки между собой отсортировать....
Тут есть два стула
1) многомерный массив ака int[,]
Удобно тем что точно прямоугольный, легко инитится
Минусы: не реализует linq потому что иди нахуй вот почему. Пиши ручками
2) int[][]. Страшная херня, которая не гарантирует прямоугольности, которая страшно инициализируется, но зато да, её можно отсортировать.

DELETED replied to Мя

@mo Эээ… а какая логика сортировки строк массива? Я не знаю как в твоём языке, но обычно функции сортировки реализовывают сами алогоритмы. Им можно скормить свою функцию сравнения. Пишешь функцию и едешь.

Мя :sparkles_lesbian: replied to DELETED

@tennoseremel логика:
Есть двумерный массив, нужно отсортировать строки в нем по минимальному элементу (т.е сравнение строк матрицы == сравнение минимальных элементов этих строк).

OrderBy(line => line.Min())

Только вот с int[,] такое не работает, только с int[][]

DELETED replied to Мя

@mo Так я тебе и говорю, выбрось из головы итераторы. Это не тот инструмент.

Сделай руками. Ничего плохо в этом нет. Это нормально.

Мя :sparkles_lesbian: replied to DELETED

@tennoseremel не надо потом на меня смотреть удивлёнными глазами, когда я говорю что майкрософт не умеет в удобно.

DELETED replied to Мя

@mo А ты не говори… :blobcatderpy:

Мя :sparkles_lesbian:

@tennoseremel а по поводу циклов. У меня изначальный план был не писать сортировку ручками, а припахать Linq. Так тут мало того что итерации нормальной нет, многомерные массивы в Linq в принципе не умеют!
Пришлось делать вложенный, который неудобен в других местах, но для которого есть встроенные средства сортировки

Go Up