Форум программистов, компьютерный форум CyberForum.ru

Перегрузка многомерной индексации - C++

Войти
Регистрация
Восстановить пароль
 
 
isrepeat
0 / 0 / 0
Регистрация: 14.08.2016
Сообщений: 11
14.08.2016, 05:43     Перегрузка многомерной индексации #1
C++
1
2
3
4
5
6
struct Matrix
{
    int m[2][5][3];
    Matrix() {}
    ... operator[](int n) {return ...;}
};
Как перегрузить индексацию в классе чтобы можно было работать с массивом так:

C++
1
2
3
4
5
int main()
{
     Matrix M;
     cout << M[1][0][1];
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
isrepeat
0 / 0 / 0
Регистрация: 14.08.2016
Сообщений: 11
19.08.2016, 18:44  [ТС]     Перегрузка многомерной индексации #21
Avazart, зачем усложнять себе жизнь когда есть такой способ:
C++
1
2
3
4
5
6
7
8
9
10
class matrix
{
private:
    int m[10][10][10];
public:
    int (&operator[](const unsigned i))[10][10]
    {
        return m[i];
    }
};
во-первых меньше места занимает, во-вторых намного легче поменять размерность (просто в двух местах дописать [N] и получится матрица к примеру 4х4), да и читается понятнее нежели с векторами и строками.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
Нарушитель
6954 / 5192 / 256
Регистрация: 10.12.2010
Сообщений: 22,775
Записей в блоге: 17
19.08.2016, 19:12     Перегрузка многомерной индексации #22
Цитата Сообщение от isrepeat Посмотреть сообщение
Avazart, зачем усложнять себе жизнь когда есть такой способ:
Что бы можно было управлять размерами в динамике.
isrepeat
0 / 0 / 0
Регистрация: 14.08.2016
Сообщений: 11
19.08.2016, 19:24  [ТС]     Перегрузка многомерной индексации #23
ясно. мне же важна быстрая работа с массивами, поэтому динамику использовать не могу.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.08.2016, 19:25     Перегрузка многомерной индексации
Еще ссылки по теме:

Перегрузка двойной индексации C++
Перегрузка оператора индексации для связанного списка C++
Перегрузка оператора индексации в списке C++
Перегрузка оператора индексации в одном классе и использование в другом C++
C++ Перегрузка оператора индексации для класса плохо себя ведёт

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

Или воспользуйтесь поиском по форуму:
Avazart
Нарушитель
6954 / 5192 / 256
Регистрация: 10.12.2010
Сообщений: 22,775
Записей в блоге: 17
19.08.2016, 19:25     Перегрузка многомерной индексации #24
Цитата Сообщение от isrepeat Посмотреть сообщение
ясно. мне же важна быстрая работа с массивами, поэтому динамику использовать не могу.
Ну тогда std::array<>
Yandex
Объявления
19.08.2016, 19:25     Перегрузка многомерной индексации
Ответ Создать тему
Опции темы

Текущее время: 10:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru