อาเรย์

อาเรย์เป็นตัวแปรประเภทหนึ่งในภาษา C++ มันสามารถเก็บข้อมูลที่เป็นชุดไว้ในตัวแปรเดียวโดยการใช้ index เพื่อเป็นตัวชี้ของตำแหน่งข้อมูล ดังนั้นอาเรย์จึงเป็นตัวแปรประเภทหนึ่ง และมีรูปแบบคือ:

type name[size];

ลองจินตนาการว่าถ้าคุณมีข้อมูลเป็นจำนวนมากและเป็นข้อมูลประเภทเดียวกัน การใช้อาเรย์เป็นวิธีที่ง่ายที่จะจัดการกับข้อมูลเหล่านี้

int n1 = 10;
int n2 = 50;
int n3 = 10;
int n4 = 30;
int n5 = 20;

ในตัวอย่างด้านบน เรามีตัวแปร 5 ตัว และแต่ละตัวมีประเภทเป็น int เราสามารถใช้แค่ตัวแปรอาเรย์ตัวเดียวเพื่อที่จะเก็บข้อมูลเหล่านี้

int n[5] = {10, 50, 10, 30, 20};

การประกาศอาเรย์

การประกาศอาเรย์เป็นขั้นตอนแรกที่ต้องทำ เมื่อคุณต้องการใช้อาเรย์ในการจัดการกับข้อมูล

int foo[3];
float x[10];

ในตัวอย่าง เราได้ประกาศตัวแปรอาเรย์ 2 ตัวแปรคือ foo และ x เหมือนเราประกาศตัวแปรทั่วไป แต่อาเรย์จะต้องระบุขนาดสูงสุดของมันที่เราจะใช้ และเราสามารถประกาศอาเรย์และกำหนดค่าให้มันในทันนี้

int myNumber[2] = {5, 100};
float money[5] = {10.5, 10.9, 1.5, 4.4, 3.1};

หรือเราสามารถกำหนดค่าให้อาเรย์หลังจากที่เราได้ประกาศมันเสร็จสิ้นแล้ว โดยการใช้ index เพื่อเข้าถึงตำแหน่งของข้อมูลในอาเรย์ คุณจะต้องเข้าใจว่าตำแหน่งของอาเรย์นั้นเริ่มต้นจาก 0 และจะสิ้นสุดที่ size-1 ยกตัวอย่างเช่น ถ้าอาเรย์มีขนาดเป็น 10 index ของมันคือ 0 - 9

int n[10];
n[0] = 1;
n[1] = 2;
n[5] = 5;
n[11] = 5; // error because an index out of bound

เราสามารถใช้แค่บาง index ได้ถ้าเราต้องการ แต่โดยปกติแล้ว มันไม่มีเหตุผลอะไรที่เราจะละเว้นบางตำแหน่ง

การสร้างอาเรย์โดยการใช้คำสั่ง for-loop

อาเรย์นั้นทำงานได้ดีกับลูป การใช้ for-loop เป็นวิธีที่ง่ายที่เราจะใช้กับอาเรย์ ถ้าบางครั้ง ถ้าเราต้องการสร้างอาเรย์กับข้อมูล 5, 10, 15, 20, ... , 100 แล้วเราจะทำได้อย่างไร แน่นอน เราจะใช้ for-loop มาช่วย

#include <iostream>
using namespace std;

int main ()
{
int myNumber[20];
for (int i = 0; i < 20; i++) {
myNumber[i] = (i+1) * 5;
}
return 0;
}

ในตัวอย่าง เราต้องรู้ขนาดที่แน่นอนของอาเรย์และในตอนแรกเราจะสร้างอาเรย์ หลังจากนั้นเราใช้ for-loop เพื่อวนซ้ำ 20 ครั้ง เพื่อกำหนดค่าให้ในอาเรย์แต่ละตำแหน่ง ซึ่งมันมีผลเหมือนกันกับที่เราทำแบบนี้

int myNumber[20] = {5, 10, 15, 20, 25, 30, 35, .. , 100};

Accessing the values of an array

อาเรย์เป็นข้อมูลแบบลำดับที่เก็บข้อมูลในหนึ่งตัวแปร มันมี index ที่สามารถระบบตำแหน่งของแต่ละค่าในหน่วยความจำ ดังนั้น อาเรย์สามารถเข้าถึงได้โดยตรงผ่านทาง index อย่างไรก็ตาม การใช้ for-loop เพื่อวนซ้ำและเข้าถึงข้อมูลในอาเรย์นั่นเป็นวิธีที่ง่ายที่สุดที่เราชอบทำ มาดูตัวอย่างของการอ่านข้อมูลจากอาเรย์ for-loop

#include <iostream>
using namespace std;

int main ()
{
int number[5] = {1, 2, 3, 4, 5};
for (int i = 0; i < 5; i++) {
cout << "number[" << i << "] = " << number[i] << endl;
}
return 0;
}

Output

number[0] = 1
number[1] = 2
number[2] = 3
number[3] = 4
number[4] = 5

ในตัวอย่างนี้ จะแสดงวิธีอ่านข้อมูลในอาเรย์โดยการใช้ for-loop และเราใช้ตัวแปร i เป็น index ของอาเรย์ คุณสามารถนำตัวอย่างนี้ไปประยุกต์ใช้ต่อได้ตามที่คุณต้องการ เช่น การแสดงอาเรย์จากตำแหน่งสุดท้ายมายังตำแหน่งแรก นี่เป็นวิธี

#include <iostream>
using namespace std;

int main ()
{
string countries[5] = {"US", "CH", "UK", "GR", "JP"};
for (int i = 4; i >= 0; i--) {
cout << "countries[" << i << "] = " << countries[i] << endl;
}
return 0;
}

Output

countries[4] = JP
countries[3] = GR
countries[2] = UK
countries[1] = CH
countries[0] = US

แทนที่จะแสดงข้อมูลจากอันแรกไปยังอันสุดท้ายหรืออ่านไปตามลำดับ ตัวอย่างนี้จะแสดงให้คุณเห็นถึงวิธีการอ่านข้อมูลจากท้ายของอาเรย์ ตั้งแต่เรารู้ว่าขนาดของอาเรย์คือ 5 ดังนั้น index ตัวสุดท้ายจะต้องเป็น 4 เราจึงใช้ for-loop ลดค่าของ i แทนที่จะเพิ่ม

Multidimensional arrays

ที่คุณได้เพิ่งเรียนรู้ไปทั้งหมดนั้นเป็นเพียงแค่พื้นฐานของอาเรย์ และเราเรียกว่า อาเรย์หนึ่งมิติ ต่อไป เราจะเรียนรู้เกี่ยวกับอาเรย์หลายมิติ อาเรย์หลายมิตินั้นเป็นอาเรย์ของอาเรย์ นั่นหมายความว่าเราสามารถมีอาเรย์ในอาเรย์ มาดูตัวอย่างในอาเรย์สองมิติ

int number[3][4];
string location[2][2][2];

ในตัวอย่าง แสดงวิธีให้คุณเห็นวิธีการประกาศอาเรย์สองมิติ บรรทัดแรกคือ อาเรย์สองมิติ และบรรทัดที่สองเป็นอาเรย์สามมิติ แต่ในบทเรียนนี้เราจะพูดถึงแค่อาเรย์สองมิติ เพราะว่าอาเรย์หลายมิตินั้นไม่ค่อยได้ใช้ อย่างไรก็ตาม มันมีแนวคิดเดียวกัน

ต่อไป มาดูตัวอย่างวิธีการประกาศอาเรย์สองมิติ

int number[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}};

อาเรย์สองมิตินั้นเหมือนตาราง โดยการเข้าถึงแต่ละค่าในอาเรย์ ยกตัวอย่างเช่น 10 เราสามารถเข้าถึงได้โดย number[2][1] และเราสามารถแสดงรายการของข้อมูลทั้งหมดโดยการใช้ for-loop ที่ซ้อนกัน

#include <iostream>
using namespace std;

int main ()
{
int m[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}};

for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
cout << "m[" << i << "][" << j << "] = ";
cout << m[i][j] << endl;
}
}
return 0;
}

ในตัวอย่าง เราใช้ for-loop เพื่อแสดงข้อมูลจากอาเรย์ สำหรับอาเรย์สองมิติ เรามีการใช้ for-loop ที่ซ้อนกัน for-loop ด้านนอกจะใช้รันสำหรับ row และด้านในสำหรับ column m[row][col] และข้างล่างเป็นผลลัพธ์ของโปรแกรม

m[0][0] = 1
m[0][1] = 2
m[0][2] = 3
m[0][3] = 4
m[1][0] = 5
m[1][1] = 6
m[1][2] = 7
m[1][3] = 8
m[2][0] = 9
m[2][1] = 10
m[2][2] = 11
m[2][3] = 12

ในบทนี้ เราได้ครอบคลุมในอาเรย์พื้นฐานทั้งหนึ่งมิติและสองมิติ


บทความเกี่ยวกับ อาเรย์

อาเรย์ ในภาษา C

ในบทนี้คุณจะได้เรียนรู้เกี่ยวกับอาเรย์ในภาษา C ซึ่งคุณได้เห็นการใช้งานของอาเรย์ไปบ้างแล้วในบทก่อนหน้า อาเรย์ คือตัวแปรที่เก็บข้อมูลเป็นชุดข้อมูล โดยข้อมูลของอาเ...

อาเรย์ ในภาษา C#

อาเรย์เป็นประเภทข้อมูลชนิดหนึ่ง ที่คุณสามารถเก็บค่าตัวแปรประเภทเดียวกันได้หลายๆ ค่าไว้ในตัวแปรเดียวที่เรียกว่า ตัวแปรอาเรย์ ในการสร้างอาเรย์ในภาษา C# มีรูปแบบด...

อาเรย์ ในภาษา Java

ในบทนี้ เราจะแนะนำให้คุณได้รู้จักกับอาเรย์ การสร้างและใช้งานอาเรย์ในภาษา Java การใช้งานอาเรย์กับคำสั่ง For loop อาเรย์ (Array) คือ ประเภทของข้อมูลที่สามารถเก็บข...

อาเรย์ ในภาษา Visual Basic

อาเรย์ คือประเภทข้อมูลที่สามารถเก็บข้อมูลประเภทเดียวกันได้หลายๆ ตัวในหนึ่งตัวแปร เราเรียกว่าตัวแปรอาเรย์ มันเป็นชุดของข้อมูลที่จัดเก็บข้อมูลเรียงต่อกันภายในหน่ว...

อาเรย์ ในภาษา PHP

อาเรย์ (Array) คือประเภทข้อมูลที่เก็บข้อมูลเป็นชุดลำดับเรียงต่อกันในหน่วยความจำ อาเรย์เป็นตัวแปรประเภทหนึ่งในภาษา PHP ที่สามารถเก็บข้อมูลได้มากกว่าหนึ่งค่า อาเร...