Чтобы вернуть двумерный массив из функции в C++, у вас есть несколько вариантов. Вот несколько методов, которые вы можете использовать:
- Использование необработанного указателя:
- Объявите функцию с желаемым типом возвращаемого значения, который является указателем на указатель (т. е.
int). - Динамически выделяйте память для 2D-массива с помощью ключевого слова
new. - Заполните массив значениями.
- Вернуть массив из функции.
- Объявите функцию с желаемым типом возвращаемого значения, который является указателем на указатель (т. е.
Пример:
int return2DArray(int rows, int cols) {
int arr = new int*[rows];
for (int i = 0; i < rows; i++) {
arr[i] = new int[cols];
}
// Populate the array with values
// ...
return arr;
}
- Использование 2D-вектора:
- Объявите функцию с возвращаемым типом как вектор векторов (т. е.
vector).> - Создайте двухмерный вектор и заполните его значениями.
- Вернуть вектор из функции.
- Объявите функцию с возвращаемым типом как вектор векторов (т. е.
Пример:
vector<vector<int>> return2DArray(int rows, int cols) {
vector<vector<int>> arr(rows, vector<int>(cols));
// Populate the array with values
// ...
return arr;
}
- Использование структуры:
- Определите структуру, содержащую двумерный массив и его размеры.
- Объявите функцию с возвращаемым типом в качестве структуры.
- Заполните массив значениями и верните структуру из функции.
Пример:
struct Array2D {
int arr;
int rows;
int cols;
};
Array2D return2DArray(int rows, int cols) {
Array2D result;
result.arr = new int*[rows];
for (int i = 0; i < rows; i++) {
result.arr[i] = new int[cols];
}
result.rows = rows;
result.cols = cols;
// Populate the array with values
// ...
return result;
}
Это всего лишь несколько методов возврата двумерного массива из функции в C++. Выберите тот, который соответствует вашим потребностям, исходя из ваших конкретных требований.