Я искал функции отображения в n-мерном массиве, но не нашел конкретного ответа. Я хочу знать, как работают многомерные массивы i C++? что является общей формулой для нахождения элемента по конкретному индексу в n-мерном массиве.?Что такое функции отображения в C++?
-3
A
ответ
-1
оператор Переопределение [], что возвращение объект с переопределенной oprator []
template<T>
struct Matrix {
// initialization and access checking skipped
typedef std::vector<T> t_raw;
typedef std::vector<t_raw> t_col;
t_col m_mat;
struct Idx {
Matrix* mat;
size_t row;
T& operator[](size_t col) {
return this->mat->m_mat[ this->row ][col];
};
}
Idx operator[](size_t row) {
Idx idx;
idx.mat = this;
idx.row = row;
return idx;
};
friend class Idx;
};
Matrix<int> m;
m[1][2] = 5;
1
Учитывая к-размерность массива arr[n,1][n,2][n,3]...[n,k]
, индекс элемента в arr[x,1][x,2][x,3]...[x,k]
является x,k + x,(k-1) * n,k + x,(k-2) * n,k * n,(k-1) + ... + x,1 * n,2 * n,3 * ... * n,k
.
Смежные вопросы
- 1. Что такое эквивалент функции inet_addr в C#
- 2. Что такое | оператор в вызове функции? [C++]
- 3. Что такое вспомогательные функции в C++?
- 4. Что такое «контекст подвески функции» в C++
- 5. Что такое несоответствие типа функции в c?
- 6. Что такое автономные функции?
- 7. Что такое функция уменьшения отображения
- 8. Что такое D's версия системной функции C++?
- 9. Что такое эквивалент Python функции чтения C?
- 10. Что такое C# эквивалент функции SQL STR?
- 11. C: Что такое временная сложность функции qsort?
- 12. Что такое значение функции?
- 13. Что такое функции примера?
- 14. Что такое ** в C++
- 15. Что такое [] в C#?
- 16. Что такое '##' в C?
- 17. Что такое ** в C++?
- 18. Что такое вариационные функции в соответствии с C и C++?
- 19. Что такое эквивалент чистой виртуальной функции C++ в Objective-C?
- 20. Что такое сложный ключ отображения в YAML?
- 21. Что такое лямбда-функции?
- 22. Что такое «|» в функции С?
- 23. Что такое работник в C?
- 24. C++: Что такое «:» здесь?
- 25. Что такое _start() в C?
- 26. C++: что такое :: for?
- 27. Что такое тип отображения для Object [] с java на C++ в функции вызова?
- 28. Что такое подпись типа функции лямбда-функции C++ 11/1y?
- 29. Что такое возвращаемое значение функции
- 30. Что такое значение «* &» в C++
http://stackoverflow.com/a/3755221/14065 –
Дубликат не отвечает на вопрос, поскольку я его интерпретирую, но он неопределенный. Что бы это ни стоило, учитывая сказанное «T a [4] [5] [6];», компилятор обычно создает эквивалент 'T _a [4 * 5 * 6]', с любым доступом к 'a [i] [j] [k] 'аналог к _a [k + j * 6 + i * 6 * 5]'. Другими словами, элементы все еще смежны, и изменение самого правого индекса перемещается к соседнему элементу в памяти. –