Login
Массивчик бы... двумерный.
NEW 06.01.11 14:12
Хочу массивчик. С# only.
Двумерный.
Авторесайзебельный по обоим осям.
С индексацией целыми, строками и методами объектов.
Тип данных - будет определен позднее.
Набор операций - тоже позднее, не критично, можно с агрегацией.
Кто видел слышал - поделитесь, плс...
ЗЫ. Ленивый Я что-то стал - нужен массив для двух проектов и лениво написать...
Двумерный.
Авторесайзебельный по обоим осям.
С индексацией целыми, строками и методами объектов.
Тип данных - будет определен позднее.
Набор операций - тоже позднее, не критично, можно с агрегацией.
Кто видел слышал - поделитесь, плс...
ЗЫ. Ленивый Я что-то стал - нужен массив для двух проектов и лениво написать...
NEW 06.01.11 17:02
in Antwort Murr_0001 06.01.11 14:12
как насчет ArrayList?
http://msdn.microsoft.com/en-us/library/system.collections.arraylist.aspx
если это стрингс то проблем не будет. С фиксированными по размерам видам данных думаю могут возникнуть проблемки...
http://msdn.microsoft.com/en-us/library/system.collections.arraylist.aspx
В ответ на:
Тип данных - будет определен позднее.
Тип данных - будет определен позднее.
если это стрингс то проблем не будет. С фиксированными по размерам видам данных думаю могут возникнуть проблемки...
все что вы сделаете в интернете может быть использовано против вас!
NEW 06.01.11 20:01
как насчет ArrayList?
-----
Нее... хочу полный врапер для проблемы. Массив там всегда двумерный, но не всегда можно вычислить размер - это основное.
думаю могут возникнуть проблемки.
------
Нее, это точно не проблема - конвертну что там будет в интерфейсы - они всегда одинаковые по размеру... и функциональности.
in Antwort viger2 06.01.11 17:02
как насчет ArrayList?
-----
Нее... хочу полный врапер для проблемы. Массив там всегда двумерный, но не всегда можно вычислить размер - это основное.
думаю могут возникнуть проблемки.
------
Нее, это точно не проблема - конвертну что там будет в интерфейсы - они всегда одинаковые по размеру... и функциональности.
07.01.11 09:11
Тогда ArrayList of ArrayLists.
Еще не знаю как в шарповнике, а в жабе есть HashMap - и двумерный, и размер не ограничен.
in Antwort Murr_0001 06.01.11 20:01
В ответ на:
Массив там всегда двумерный, но не всегда можно вычислить размер - это основное.
Массив там всегда двумерный, но не всегда можно вычислить размер - это основное.
Тогда ArrayList of ArrayLists.
Еще не знаю как в шарповнике, а в жабе есть HashMap - и двумерный, и размер не ограничен.
Девки спорили на даче о свойствах ряда Фибоначчи
NEW 07.01.11 09:51
in Antwort Knusprig 07.01.11 09:11
Тогда ArrayList of ArrayLists.
------
Это - да. Но там надо писать кучу обвязки - добавить по размерности, перересайзить, индексеры... Вот это и хочу взять готовое... Лентяй?
HashMap
-------
Есть HashMap, но вроде не двумерный... В Жабе, кстати, тоже не припомню двумерного...
------
Это - да. Но там надо писать кучу обвязки - добавить по размерности, перересайзить, индексеры... Вот это и хочу взять готовое... Лентяй?
HashMap
-------
Есть HashMap, но вроде не двумерный... В Жабе, кстати, тоже не припомню двумерного...
NEW 07.01.11 10:06
in Antwort Murr_0001 07.01.11 09:51
двухмерным будет, если ключ сделать составным (типа i+","+j )
.
Правда с итерированием проблемы, да и размер без пол-литры не узнаешь.
Зато сразу разреженный






Прошу ногами не бить - щутка
Правда с итерированием проблемы, да и размер без пол-литры не узнаешь.
Зато сразу разреженный
Прошу ногами не бить - щутка
NEW 07.01.11 10:10
in Antwort mickle_ak 07.01.11 10:06
щутка
------
+1
Но вообще доходит до смешного - задача не настолько сложная, чтобы было невозможно написать,
и не настолько редко встречающаяся, чтобы в ней не было необходимости... и все же готовое
решение найти не так просто.
------
+1
Но вообще доходит до смешного - задача не настолько сложная, чтобы было невозможно написать,
и не настолько редко встречающаяся, чтобы в ней не было необходимости... и все же готовое
решение найти не так просто.
NEW 07.01.11 10:52
Конечно лентяй!
Но если б не лень, мы бы до сих пор носились по джунглям в поисках еды и одежды.
Он вроде имплементирован в виде массива списков. По хашкоду идет добавление объекта в массив, потом в конец списка.
in Antwort Murr_0001 07.01.11 09:51
В ответ на:
Лентяй?
Лентяй?
Конечно лентяй!
Но если б не лень, мы бы до сих пор носились по джунглям в поисках еды и одежды.
В ответ на:
В Жабе, кстати, тоже не припомню двумерного...
В Жабе, кстати, тоже не припомню двумерного...
Он вроде имплементирован в виде массива списков. По хашкоду идет добавление объекта в массив, потом в конец списка.
Девки спорили на даче о свойствах ряда Фибоначчи
NEW 07.01.11 11:50
Это ИМХО стратегия разрешения коллизий хэш-функции. Сам "ассоциативный массив" остается "одномерным". Ведь пользователь не может выбрать позицию в списки или узнать его размер.
in Antwort Knusprig 07.01.11 10:52
В ответ на:
Он вроде имплементирован в виде массива списков. По хашкоду идет добавление объекта в массив, потом в конец списка.
Он вроде имплементирован в виде массива списков. По хашкоду идет добавление объекта в массив, потом в конец списка.
Это ИМХО стратегия разрешения коллизий хэш-функции. Сам "ассоциативный массив" остается "одномерным". Ведь пользователь не может выбрать позицию в списки или узнать его размер.
NEW 07.01.11 12:31
Это да.
Зато можно использовать ключи, как ты предложил, типа "[11][22]" и симулировать двухмерный массив
Таким образом мы получаем и динамический размер, и готовый метод поиска.
in Antwort mickle_ak 07.01.11 11:50
В ответ на:
Ведь пользователь не может выбрать позицию в списки или узнать его размер.
Ведь пользователь не может выбрать позицию в списки или узнать его размер.
Это да.
Зато можно использовать ключи, как ты предложил, типа "[11][22]" и симулировать двухмерный массив
Таким образом мы получаем и динамический размер, и готовый метод поиска.
Девки спорили на даче о свойствах ряда Фибоначчи
NEW 01.02.11 19:04
Как бы это сформулировать... Ну не кошерно это, для объектной среды.
Кроме "математики", никогда такой потребности не возникало.
in Antwort Murr_0001 07.01.11 10:10
В ответ на:
и не настолько редко встречающаяся, чтобы в ней не было необходимости
и не настолько редко встречающаяся, чтобы в ней не было необходимости
Как бы это сформулировать... Ну не кошерно это, для объектной среды.
Кроме "математики", никогда такой потребности не возникало.
NEW 01.02.11 19:28
in Antwort AlexNek 01.02.11 19:04
Кроме "математики", никогда такой потребности не возникало.
------
Увы, как раз математика...
Первая часть - вычисление транзитивного замыкания...
Вторая - экспертная система или нейронка - еще не определился чем решать задачу...
Но в любом случае - двумерка, переменного размера...
------
Увы, как раз математика...
Первая часть - вычисление транзитивного замыкания...
Вторая - экспертная система или нейронка - еще не определился чем решать задачу...
Но в любом случае - двумерка, переменного размера...
NEW 01.02.11 20:42
скорость, сторонние библиотеки?
В принипе, любой х мерный, массив можно перевести на объектный уровень. Тот же массив объектов с пропертями - уже двумерный массив, проблема в эффективности операций.
Это ты зациклился. Я как-то работал в паре с математиком (точнее надо было очеловечить его код) - у него были исключительно Х-мерные динамические массивы (правда это был С++), отлично можно было перевести на объекты, даже и быстрее получалось иногда. Главный плюс - код уже можно было понять.
in Antwort Murr 01.02.11 19:28
В ответ на:
Увы, как раз математика
Увы, как раз математика
скорость, сторонние библиотеки?
В принипе, любой х мерный, массив можно перевести на объектный уровень. Тот же массив объектов с пропертями - уже двумерный массив, проблема в эффективности операций.
В ответ на:
Но в любом случае - двумерка
Но в любом случае - двумерка
Это ты зациклился. Я как-то работал в паре с математиком (точнее надо было очеловечить его код) - у него были исключительно Х-мерные динамические массивы (правда это был С++), отлично можно было перевести на объекты, даже и быстрее получалось иногда. Главный плюс - код уже можно было понять.
NEW 01.02.11 21:46
in Antwort AlexNek 01.02.11 20:42
скорость, сторонние библиотеки?
------
Не критично. Все свое.
В принипе, любой х мерный, массив можно перевести на объектный уровень.
------
Можно.
Но в данном случае нужно наоборот - сделать двумерное представление-контейнер
и забыть об проблеме с представлением.
Главный плюс - код уже можно было понять.
------
Это - да. И именно это Я и ищу.
Дело в том, что значительная часть имеющегося кода - пуре Си. И он по природе -
процедурный. И первая часть, которую надо из него выкинуть - операции по управлению
памятью. Там они почти статические - один вызов malloc\free.
------
Не критично. Все свое.
В принипе, любой х мерный, массив можно перевести на объектный уровень.
------
Можно.
Но в данном случае нужно наоборот - сделать двумерное представление-контейнер
и забыть об проблеме с представлением.
Главный плюс - код уже можно было понять.
------
Это - да. И именно это Я и ищу.
Дело в том, что значительная часть имеющегося кода - пуре Си. И он по природе -
процедурный. И первая часть, которую надо из него выкинуть - операции по управлению
памятью. Там они почти статические - один вызов malloc\free.
NEW 02.02.11 00:29
почти точная копия моего "математика". Только он сишные "проги" в обвертке плюсов писал.
Я был страшно раз когда удавлось убрать хоть одну размерность массива.
Если нет никаких критических требований подумай чуть больше и не пользуй двумерный массив напрямую. У меня было очень мало мест где имелся смысл в использовании х-мерных массивов. Зато даже после первой итерации, можно было уже хоть немного понять смысл работы алгоритма, хотя при этом перевод делался "вслепую". (То есть просто смотрел какие куски можно изменить, не понимая как это все у него работает)
Некоторые его функции приходилось измерять в метрах (!) Задолбался листы распечаток склеивать на полу.
Не делай только все сразу.
in Antwort Murr 01.02.11 21:46
В ответ на:
Дело в том, что значительная часть имеющегося кода - пуре Си
Дело в том, что значительная часть имеющегося кода - пуре Си
почти точная копия моего "математика". Только он сишные "проги" в обвертке плюсов писал.
Я был страшно раз когда удавлось убрать хоть одну размерность массива.
Если нет никаких критических требований подумай чуть больше и не пользуй двумерный массив напрямую. У меня было очень мало мест где имелся смысл в использовании х-мерных массивов. Зато даже после первой итерации, можно было уже хоть немного понять смысл работы алгоритма, хотя при этом перевод делался "вслепую". (То есть просто смотрел какие куски можно изменить, не понимая как это все у него работает)
Некоторые его функции приходилось измерять в метрах (!) Задолбался листы распечаток склеивать на полу.
В ответ на:
И первая часть, которую надо из него выкинуть
И первая часть, которую надо из него выкинуть
Не делай только все сразу.
NEW 02.02.11 03:24
in Antwort AlexNek 02.02.11 00:29
почти точная копия моего "математика".
-----
Когда он писался - ничего другого доступно не было... Ну кроме Кобола с Фортраном...
и не пользуй двумерный массив напрямую.
------
А кто сказал, что нужен именно двумерный массив? Пусть он внутри будет каким может!!!
А вот снаружи он мне нужен именно таким - двумерным. Указанные задачи, разумеется,
векторизуются, но как это будет внутри - мне не важно...
можно было уже хоть немного понять смысл работы алгоритма
------
Гхммм.... Фортрановского спагетти Я в свое время накушался... Сейчас - сильно подумаю -
а надо ли... и скорее всего - ну его нах...
Некоторые его функции приходилось измерять в метрах
------
Тогда так учили и так писали.
У меня была одна програмка в доработке. Измеряла и обсчитывала тех.процесс варки пива.
Где-то 130 разных датчиков... каждый - с хитрой функцией преобразования... примерно
10-15 строк на датчик... Портянку представил? Ну для полноты картины - ограничения
tiny-модели борланда под досом... и куча переходов по коду... последние - непонятно
зачем - возможно пытались бороться за время...
По задаче - надо было добавить замер и обсчет еще пары десятков датчиков. Разумеется,
это все не влезло - ни в память, ни во временной цикл измерений...
Результат - массивчик - две с половиной страницы данных - по одной строке на датчик,
и примерно 40 строк кода... ну и все запихнуто в бакграунд - персонал мог играть в шахматы
не мешая процессу...
Не делай только все сразу.
-----
:)
-----
Когда он писался - ничего другого доступно не было... Ну кроме Кобола с Фортраном...
и не пользуй двумерный массив напрямую.
------
А кто сказал, что нужен именно двумерный массив? Пусть он внутри будет каким может!!!
А вот снаружи он мне нужен именно таким - двумерным. Указанные задачи, разумеется,
векторизуются, но как это будет внутри - мне не важно...
можно было уже хоть немного понять смысл работы алгоритма
------
Гхммм.... Фортрановского спагетти Я в свое время накушался... Сейчас - сильно подумаю -
а надо ли... и скорее всего - ну его нах...
Некоторые его функции приходилось измерять в метрах
------
Тогда так учили и так писали.
У меня была одна програмка в доработке. Измеряла и обсчитывала тех.процесс варки пива.
Где-то 130 разных датчиков... каждый - с хитрой функцией преобразования... примерно
10-15 строк на датчик... Портянку представил? Ну для полноты картины - ограничения
tiny-модели борланда под досом... и куча переходов по коду... последние - непонятно
зачем - возможно пытались бороться за время...
По задаче - надо было добавить замер и обсчет еще пары десятков датчиков. Разумеется,
это все не влезло - ни в память, ни во временной цикл измерений...
Результат - массивчик - две с половиной страницы данных - по одной строке на датчик,
и примерно 40 строк кода... ну и все запихнуто в бакграунд - персонал мог играть в шахматы
не мешая процессу...
Не делай только все сразу.
-----
:)
NEW 02.02.11 18:48
Я имел в виду именно "снаружи", а внутренности можно было уже написать по пару раз, пока мы тут болтаем.
В итоге так и поступили, но пока не было нового решения надо было (!) поддерживать старое.
Ты видимо, не совсем внимательно прочитал, речь шла о Функциях! Гото и циклы надо было при помощи метровой линейки вырисовывать
in Antwort Murr 02.02.11 03:24
В ответ на:
А вот снаружи он мне нужен именно таким - двумерным
А вот снаружи он мне нужен именно таким - двумерным
Я имел в виду именно "снаружи", а внутренности можно было уже написать по пару раз, пока мы тут болтаем.
В ответ на:
и скорее всего - ну его нах
и скорее всего - ну его нах
В итоге так и поступили, но пока не было нового решения надо было (!) поддерживать старое.
В ответ на:
У меня была одна програмка в доработке
У меня была одна програмка в доработке
Ты видимо, не совсем внимательно прочитал, речь шла о Функциях! Гото и циклы надо было при помощи метровой линейки вырисовывать
NEW 04.02.11 00:25
in Antwort AlexNek 02.02.11 18:48
можно было уже написать по пару раз
------
Читай выше - ЛЕ НИ ВО... хочу готовый... налаженный, протещенный и опробованный не одним прогером...
речь шла о Функциях!
------
А ты перемножь цифирьки...
надо было
------
Ты игру "Убеги от людоеда" на Фортране ни разу не видел? Там нет функций... вообще... сплошные assign & goto
------
Читай выше - ЛЕ НИ ВО... хочу готовый... налаженный, протещенный и опробованный не одним прогером...
речь шла о Функциях!
------
А ты перемножь цифирьки...
надо было
------
Ты игру "Убеги от людоеда" на Фортране ни разу не видел? Там нет функций... вообще... сплошные assign & goto
NEW 04.02.11 19:34
это пойдет?
Та,... размером проекта никого не удивишь.
in Antwort Murr 04.02.11 00:25
В ответ на:
хочу готовый
хочу готовый
это пойдет?
В ответ на:
http://msdn.microsoft.com/en-us/library/2s05feca%28vs.80%29.aspx
http://msdn.microsoft.com/en-us/library/2s05feca%28vs.80%29.aspx
В ответ на:
А ты перемножь цифирьки
А ты перемножь цифирьки
Та,... размером проекта никого не удивишь.
NEW 04.02.11 21:54
in Antwort AlexNek 04.02.11 19:34
это пойдет?
------
Неа...
Мне нужно что-то такое
Примерно так... Как оно будет внутри - не суть важно, но снаружи - двумерный массив...
размером проекта никого не удивишь.
------
Ты упускаешь тип использованной модели памяти.
------
Неа...
В ответ на:
// Declare the array of two elements:
int[][] arr = new int[2][];
// Declare the array of two elements:
int[][] arr = new int[2][];
Мне нужно что-то такое
В ответ на:
TFlatTable flatTable = new TFlatTable();
flatTable.Size(10, 15);
// работаем с элементами, индексеры - любого типа
TFlatTableIndex x = "54gg";
TFlatTableIndex y = "g678";
flatTable[x][y] = "xex"; // любой тип
...
// нашли, что 10х15 - не то
flatTable.Size.X = 20; // имеем 20х15
// старые индексы дают доступ к старому содержимому
// желательно еще что-то такое
flatTable.ForEach(method);
flatTable[x].ForEach(method);
flatTable[][y].ForEach(method);
TFlatTable flatTable = new TFlatTable();
flatTable.Size(10, 15);
// работаем с элементами, индексеры - любого типа
TFlatTableIndex x = "54gg";
TFlatTableIndex y = "g678";
flatTable[x][y] = "xex"; // любой тип
...
// нашли, что 10х15 - не то
flatTable.Size.X = 20; // имеем 20х15
// старые индексы дают доступ к старому содержимому
// желательно еще что-то такое
flatTable.ForEach(method);
flatTable[x].ForEach(method);
flatTable[][y].ForEach(method);
Примерно так... Как оно будет внутри - не суть важно, но снаружи - двумерный массив...
размером проекта никого не удивишь.
------
Ты упускаешь тип использованной модели памяти.




