Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
krazyd
16 / 0 / 2
Регистрация: 10.11.2012
Сообщений: 116
1

Реализация класса матрица

05.11.2015, 13:05. Просмотров 313. Ответов 11
Метки нет (Все метки)

День добрый форум!

Хочу узнать ваше мнение по поводу того, как лучше реализовать класс матриц.
Какую структуру лучше выбрать? Двумерный массив, одномерный массив размерности mxn, использовать 2D std::vector<>?

Расскажите, кто что использовал и с какими проблемами сталкивался?

Заранее благодарю вас за ответы!
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.11.2015, 13:05
Ответы с готовыми решениями:

реализация класса "симметричная матрица целых чисел"...
Условие вообще такое: Определите пользовательский тип “симметричная матрица целых чисел” для...

Реализация класса на базе класса Stack с возможностью !индексирования!
Помогите пожалуйста!!! Нужно реализовать на базе класса stack другой класс с возможностью...

Реализация класса
Помогите понять пожалуйста. Пример из Дейтела: #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include...

Реализация класса
Так как только начал изучать с++, возникает вопрос: есть задание : Реализовать класс IntArray....

реализация класса
Дано: класс &quot;Фильмы&quot; (название, жанр, главные роли). Вопрос: Возможно ли такой подход к...

11
sourcerer
Модератор
Эксперт CЭксперт С++
4959 / 2145 / 326
Регистрация: 20.02.2013
Сообщений: 5,582
Записей в блоге: 24
Завершенные тесты: 1
05.11.2015, 13:35 2
krazyd, как нравится, так и делай. Ну или так: как умеешь, так и делай. Примеров масса на форуме. Вот сходу три штуки: раз, и два, и три.

Добавлено через 10 минут
Вот ещё варианты:
Двумерный массив неизвестных строк и столбцов
1
nonedark2008
1299 / 961 / 296
Регистрация: 28.07.2012
Сообщений: 2,657
05.11.2015, 13:35 3
Цитата Сообщение от krazyd Посмотреть сообщение
Двумерный массив, одномерный массив размерности mxn
Это дело можно совместить.
Выделяешь одномерный массив mxn, выделяешь одномерный массив указателей длины m,
распределяешь по нему указатели на участки первого массива. Профит.
1
krazyd
16 / 0 / 2
Регистрация: 10.11.2012
Сообщений: 116
05.11.2015, 13:46  [ТС] 4
А может есть хоть какой-нибудь выигрыш в производительности или в управлении с памятью?
Если нет никакой разницы, я выбираю std::vector<> )) ;-)

Добавлено через 38 секунд
А может есть хоть какой-нибудь выигрыш в производительности или в управлении с памятью?
Если нет никакой разницы, я выбираю std::vector<> )) ;-)
0
05.11.2015, 13:46
sourcerer
Модератор
Эксперт CЭксперт С++
4959 / 2145 / 326
Регистрация: 20.02.2013
Сообщений: 5,582
Записей в блоге: 24
Завершенные тесты: 1
05.11.2015, 13:48 5
krazyd, на тебе, с векторами.
1
krazyd
16 / 0 / 2
Регистрация: 10.11.2012
Сообщений: 116
05.11.2015, 13:48  [ТС] 6
А может есть хоть какой-нибудь выигрыш в производительности или в управлении с памятью?
Если нет никакой разницы, я выбираю std::vector<> )) ;-)
0
nonedark2008
1299 / 961 / 296
Регистрация: 28.07.2012
Сообщений: 2,657
05.11.2015, 13:55 7
Цитата Сообщение от krazyd Посмотреть сообщение
А может есть хоть какой-нибудь выигрыш в производительности или в управлении с памятью?
Если нет никакой разницы, я выбираю std::vector<>
1. При использовании std::vector будут накладные расходы, их важность зависит от программы.
2. Выделяя память вручную ее можно специально выровнять, что дает заметный прирост производительности.
3. Я не уверен, что std::vector хорошо поддается некоторым стандартным оптимизациям процессора, например векторизации.

А так да, ты можешь использовать std::vector.
1
sourcerer
Модератор
Эксперт CЭксперт С++
4959 / 2145 / 326
Регистрация: 20.02.2013
Сообщений: 5,582
Записей в блоге: 24
Завершенные тесты: 1
05.11.2015, 14:23 8
Цитата Сообщение от nonedark2008 Посмотреть сообщение
При использовании std::vector будут накладные расходы
Их можно и уменьшить, используя, скажем, folly::fbvector.
0
Ilot
Эксперт С++
1845 / 1201 / 344
Регистрация: 16.05.2013
Сообщений: 3,157
Записей в блоге: 5
Завершенные тесты: 1
05.11.2015, 14:49 9
Можно использовать предопределенный стандартом класс array
0
nonedark2008
05.11.2015, 14:52
  #10

Не по теме:

Цитата Сообщение от Ilot Посмотреть сообщение
Можно использовать предопределенный стандартом класс array
Но только для матриц предопределенного размера.

0
Ilot
Эксперт С++
1845 / 1201 / 344
Регистрация: 16.05.2013
Сообщений: 3,157
Записей в блоге: 5
Завершенные тесты: 1
05.11.2015, 14:59 11
Цитата Сообщение от nonedark2008 Посмотреть сообщение
Но только для матриц предопределенного размера.
Матрицы бывают только предопределенного размера. Структуры данных с изменяемым размером это строго говоря не матрицы.
0
nonedark2008
05.11.2015, 15:12     Реализация класса матрица
  #12

Не по теме:

Ilot, я имел в виду матрицы с предопределенным на этапе компиляции размером.

0
05.11.2015, 15:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.11.2015, 15:12
Привет! Вот еще темы с ответами:

Реализация класса
Спроектировать и реализовать класс BigInt, позволяющий хранить целые числа в диапазоне , и...

Реализация класса Vector
Добрый день всем! Пишу реализацию класса vector, но не могу разобраться, как написать ручные...

Реализация шаблонного класса
List_Node.h: #ifndef _List_Node_H #define _List_Node_H template &lt;class Type&gt; class ListNode...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.