Array adalah struktur yang merupakan asal mula pemrograman. Namun, terlepas dari kenyataan bahwa array mendapat perhatian di setiap kursus pelajaran dalam bahasa pemrograman apa pun, banyak informasi penting yang berkaitan dengan logika interaksi dengan struktur ini masih luput dari para pemula.
Tujuan posting ini adalah untuk mengumpulkan beberapa informasi tentang array yang pernah saya kurangi. Posting untuk pemula.
Apa itu Array?
Array adalah struktur dengan tipe data yang sama yang terletak di memori dalam satu blok non-breaking.
Array multidimensi disimpan dengan cara yang sama.
Mengetahui hal ini memungkinkan kita mengakses elemen array secara berbeda. Misalnya, kami memiliki array dua dimensi dari 9 elemen 3x3. Jadi setidaknya ada dua cara untuk menampilkannya dengan benar:
Opsi pertama (termudah):
int arr[3][3] {1, 2, 3, 4, 5, 6, 7, 8, 9};
int y = 3, x = 3;
for (int i = 0; i < y, ++i) {
for (int j = 0; j < x; ++j) {
std::cout << arr[i][j];
}
std::cout << std::endl;
}
Opsi kedua (Lebih sulit):
int arr [9] {1,2,3,4,5,6,7,8,9};
int x = 3, y = 3;
for (int i = 0; i < y; ++i) {
for (int j = 0; j < x; ++j) {
std::cout << arr[x * i + j]; // x -
}
std::cout << std::endl;
}
Rumus untuk mengakses elemen larik 2 dimensi, dengan lebar adalah lebar larik, kolom adalah kolom yang kita butuhkan, dan baris adalah garis yang kita butuhkan:
Mengetahui opsi kedua, tidak perlu menggunakannya terus-menerus, tetapi masih perlu diketahui. Misalnya, ini dapat berguna saat Anda perlu menghilangkan tanda bintang tambahan dari petunjuk ke petunjuk ke petunjuk.
Dan beginilah cara Anda bekerja dengan array tiga dimensi
int arr[8] {1,2,3,4,5,6,7,8};
int x = 2, y = 2, z = 2;
for (int i = 0; i < x; ++i) {
for (int j = 0; j < y; ++j) {
for (int k = 0; k < z; ++z) {
std::cout << arr[x * y * i + y * j + k];
}
std::cout << std::endl;
}
std::cout << std::endl;
}
, .
, height - , width - , depth - ( ), col - , row - :
.
, .
- , .
. , :
1) .
, .
int data[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
int newArray[3][4];
int height = 3, width = 4;
for (int i = 0; i < height; ++i) {
for (int j = 0; j < width; ++j) {
newArray[i][j] = data[i][width - j - 1];
}
}
.
int data[3][4] = {1,2,3,4,5,6,7,8,9,10,11,12};
int newArray[3][4];
int height = 3, width = 4;
for (int i = 0; i < height; ++i) {
for (int j = 0; j < width; ++j) {
newArray[i][j] = data[height - i - 1][j];
}
}
2) 90 .
, , .
, c .
int data[3][2] = {1,2,3,4,5,6};
int newArray[2][3];
int height = 3, width = 2; // ()
int newHeight = width, newWidth = height;
//
for (int i = 0; i < newHeight; ++i) {
for (int j = 0; j < newWidth; ++j) {
newArray[i][j] = data[j][i]; // data -
}
}
//
for (int i = 0; i < newHeight; ++i) {
for (int j = 0; j < newWidth/2; ++j) {
int temp = newArray[i][j];
newArray[i][j] = newArray[i][newWidth - j - 1];
newArray[i][newWidth - j - 1] = temp;
}
}
, . , .
: . new.
, IT.
, , . , , , β , . .
, , .