Другие языки программирования и технологии

Вопрос по массивам на C++.

Перешел с Паскаля на плюсы. Мне нужно сделать массив массивов . в Паскале делалось
type m=array[5];
A=array[5] of m;
Как написать то же самое на плюсах? Нужно для наследования к классах.
массив массивов - очевидно подразумевает двумерный массив? :)

если нужен обычный (не динамический) делаем так:

тип имя_массива [ количество строк ] [ количество столбцов ] ;
например:
const int row = 10, col = 5 ;
int mass [ row ] [ col ] ;
mass [ 0 ] [ 2 ] = 123 ; // присвоили значение элементу в первой строке и третьем столбце

если нужен массив строк можно поступить так:
char *words [ ] = { "one" , "two" , "three" } ; // указатель на массив константных строк
cout < < words[ 1 ] < < endl ; // выведем строку two

или вот так
char sentences [ 10 ] [ 250 ] ;
здесь первая размерность - количество строк в массиве
вторая размерность - максимальная длина каждой строки в массиве
// ввод строк
for ( int i = 0 ; i < 10 ; i + +)
cin > > sentences [ i ] ;

ну а если нужен динамический массив тогда так
int row, col;
cin > > row > > col ;
int *matrix = new int * [ row ] ;
for ( int i = 0 ; i < row ; i + +)
{
matrix [ i ] = new int [ col ] ;
}

Когда работаешь с динамическим массивом не забывай освобождать память
for ( int i = 0 ; i < row ; i + +)
{
delete [ ] matrix [ i ] ;
}

delete [ ] matrix ;

P.S. когда будешь переписвать пробелы убери я их здесь расставляла намерено. Удачи в освоении С + +:)
Александр Захаров
Александр Захаров
17 777
Лучший ответ
int a[5][5];

std::vector

> Нужно для наследования.. .
???
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
int M,N,j;
float x;
int* t;
cout << "(NxM) N="; cin >> N;
cout << "(NxM) M="; cin >> M;
int* p=new int[N*M];
int** m=new int*[N];
for(j=0;j-N;m[j++]=&p[j*M]);
srand(time(0));
for(j=-1;++j-N*M;p[j]=rand(),j % M==M-1?cout << p[j] << endl:cout << p[j] << '\t');
return 0;
}
В добавок к вышесказанному, можно еще и так:

#include <iostream>
#include <array> \\ с++11

using namespace std;
typedef array<array A; \\ type m=array[5]; A=array[5] of m;

int main()
{
A a;
a[1][4] = 42;
cout << a[1][4] << endl;
cin.get();
return 0;
};
ИХ
Исус Христ
14 578