C++/CLI: одномерный и двумерный массивы array
Почему-то не оказалось такого простого примера. Между тем, описание вектора и матрицы в управляемом коде бывает проблемой после "обычного" классического C/C++. В коде ниже описана и заполнена вещественная матрица A
и вещественный вектор x
. Выполнить код можно из приложения Windows Forms, например, по событию загрузки формы (Load
). Многострочное текстовое поле для вывода данных размером во всю клиентскую часть окна формы код создаст себе сам.
Размеры вектора и матрицы задаются переменными, то есть, могут быть динамическими.
//Создадим TextBox на всё окно формы TextBox ^T = gcnew TextBox(); T->Multiline = true; T->Dock = System::Windows::Forms::DockStyle::Fill; T->Text = ""; T->Parent = this; this->Controls->Add(T); //Сделаем динамический вектор и выведем в столбец int size = 3; array<double> ^ x=gcnew array<double>(size); for (int i=0; i<size; i++) { x[i]=i+1; T->AppendText (x[i].ToString()+System::Environment::NewLine); } //Сделаем динамическую матрицу и выведем её ниже int height=3, width=3; array<double,2> ^ A=gcnew array<double,2>(height,width); for (int i=0; i<height; i++) { T->AppendText (System::Environment::NewLine); for (int j=0; j<width; j++) { A[i,j]=i+j; T->AppendText (String::Format ("{0,-3}",A[i,j].ToString()+" ")); } }
17.09.2016, 01:37 [9814 просмотров]