![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| carol |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 19 Регистрация: 12.1.2006 Репутация: нет Всего: нет |
подскажите как саздать динамически двухмении масив?
зарание спосибо |
|||
|
||||
| np9mi7 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 553 Регистрация: 17.8.2003 Где: Volgograd, Russia Репутация: 5 Всего: 10 |
|
|||
|
||||
| Fedor |
|
|||
![]() Днепрянин ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2090 Регистрация: 8.2.2003 Где: Великий Репутация: нет Всего: 32 |
Ну, а без stl, можно сделать так:
Это сообщение отредактировал(а) Fedor - 21.1.2006, 01:18 -------------------- Мы - Днепряне. Мы всех сильней. |
|||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 4 Всего: 67 |
а можно вообще просто динамически создать одномерный массив длины M x N...
-------------------- СУВ, Partizan. |
|||
|
||||
| Dreamer_0x01 |
|
|||
![]() Терминатор ![]() ![]() Профиль Группа: Участник Сообщений: 780 Регистрация: 14.4.2005 Где: Санкт-Петербург Репутация: нет Всего: 12 |
а тогда вместо a[i][j] к элементам придется обращаться как a[i*M+j], или я не прав? -------------------- Нет ничего невозможного. Есть цели, и есть время и силы на их достижение. |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
Да. Конечно, можно перегрузить T &operator ()(size_t i, size_t j) или T *operator [](size_t i), но без особой необходимости это все велоспорт. vector<vector<T> > достаточно. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| Dark Elf |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 576 Регистрация: 26.12.2003 Где: Брисбен Репутация: 9 Всего: 10 |
||||
|
||||
| TIGERоX |
|
|||
|
начинающий... ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 7.9.2005 Репутация: нет Всего: 1 |
Думаю не всегда уместно использование таких шаблонов ведь это уменьшает скорость работы особенно при больших объемов данных ведь объекы в vector находятся не подряд друг за другом как я знаю...и думаю практически на начальном уровне очень редко используются такие штуки Это сообщение отредактировал(а) TIGERоX - 21.1.2006, 23:28 |
|||
|
||||
| Void |
|
|||
![]() λcat.lolcat ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 40 Всего: 173 |
Тебя дезинформировали. Последовательное размещение содержимого вектора гарантируется. И шаблоны тут совершенно не причем. На шаблонах построены сверхбыстрые матричные библиотеки вроде Blitz++. Ручное управление двумерным массивом не факт, что еще больше тормозить не будет. Это сообщение отредактировал(а) Void - 21.1.2006, 23:34 -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
| TIGERоX |
|
||||
|
начинающий... ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 7.9.2005 Репутация: нет Всего: 1 |
хм интересно я думал что класс вектор построен примерно так же как класс list а случайно кода не найдется интересно посмотреть на реализацию последовательного размещения???
Я не полагал что создавать массив буду как предложил партизан с последующей перегрузкой. |
||||
|
|||||
| DeadSoul |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1217 Регистрация: 25.9.2005 Где: Москва Репутация: 2 Всего: 11 |
Посмотри реализацию std::vector. -------------------- Если Вы получили ответ на Ваш вопрос, то нажмите на "Вопрос решен". Бьем спамеров их же оружием. Пусть весь спам сыпется им [email protected] |
|||
|
||||
| Mayk |
|
||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Вы можете посмотреть код сами - он более чем открыт и расположн в INCLUDE/vector или подключаемых оттуда файлах. Можете посмотреть параграф lib.vector(23.2.4) в стандарте C++03:
Кстати. В с++98 такого требования нет:
Однако, как указывает Саттер, это выполнялось в реализациях STL. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||
|
|||||
| TIGERоX |
|
|||
|
начинающий... ![]() Профиль Группа: Участник Сообщений: 59 Регистрация: 7.9.2005 Репутация: нет Всего: 1 |
не смог найти реализацию функции uninitialized_fill_n
на чем как понял и жиждится выделение память под vector |
|||
|
||||
| threef |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 375 Регистрация: 27.10.2005 Где: Запорожье Репутация: 9 Всего: 10 |
Сил нет, специально попробовал.Вот результаты:
Вот код:
Может быть, создатель STL вам еще гарантируют, что с точки зрения STL 12 сек = 3 сек ? НУ НЕ МОГУТ ДИНАМИЧЕСКИЕ структуры обрабатываться с той же скоростью, что и блок памяти. Универсальность ВСЕГДА приводит к дополнительным затратам в эксплуатации при выигрыше в скорости реализации. |
||||
|
|||||
| Mayk |
|
||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 45 Всего: 134 |
Спокойней. В релизе со скорстью всё будет нормально.
(Δ - это конечное время минус начальное, SIZE=50000, COUNT=2000).
(SIZE=50000, COUNT=5000) Мой компилятор в состоянии заменить printf(" "); на putchar(' ');, а printf("") просто выкинуть. Раскрыть же vector::operator[] для него просто децкая шалость :-) -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||
|
|||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |