Devdit
 

C++ vector คืออะไร ทำงานยังไง

2.8K

C++ vector คือโครงสร้างข้อมูลชนิดในหนึ่งภาษา C++ โดยมีคุณสมบัติเป็นโครงสร้างแบบ dynamic มีลักษณะการจัดเก็บข้อมูลคล้ายกับ Array แต่ vector มีความหยืดหยุ่น และมีประสิทธิภาพมากกว่า เพราะ Array เป็นโครงสร้างแบบ static ในบทความนี้จะมาดูวิธีการสร้าง การวนลูปเพื่อแสดงข้อมูลจาก vector ของภาษา C++ สามารถเขียนโค้ดได้ดังนี้

 

ภาษา C++ โครงสร้างข้อมูลแบบ vector เป็น dynamic ทำให้ขนาดของ vector จะขึ้นอยู่กับขนาดของข้อมูล และรองรับการ เพิ่ม ลบ แก้ไขได้ตลอดเวลา ซึ่งแตกต่างจาก array ซึ่งเป็นโครงสร้างข้อมูลแบบ static ขนาดของ array จะถูกกำหนดมาตั้งแต่แรก และไม่สามารถเปลี่ยนแปลงได้

 

ตัวอย่าง C++ สร้าง vector และวนลูป vector

#include <iostream>
#include <vector>

int main() {
    std::vector<int> data = {1, 2, 3, 4, 5};

    for (int i = 0; i < data.size(); i++) {
        std::cout << data[i] << " ";
    }
    return 0;
}

ผลลัพธ์

1 2 3 4 5 

จากตัวอย่างสร้าง vector ชื่อ data พร้อมค่าเริ่มต้น {1, 2, 3, 4, 5} จากนั้นใช้คำสั่ง for วนลูปแสดงข้อมูลใน vector ทั้งหมดออกสู่หน้าจอ 

 

ตัวอย่าง C++ ลบข้อมูลใน vector

#include <iostream>
#include <vector>

int main() {
    std::vector<int> data = {1, 2, 3, 4, 5};
    
    int delete_index = 1;
    data.erase(data.begin() + delete_index);
    
    for (int i = 0; i < data.size(); i++) {
        std::cout << data[i] << " ";
    }
    return 0;
}

ผลลัพธ์

1 3 4 5 

จากตัวอย่างลบข้อมูลลำดับ (index) ที่ 1 จาก vector ออกด้วยคำสั่ง data.erase ซึ่งการลบข้อมูลใน vector นั้นจะทำให้ขนาดของ vector เปลี่ยนแปลงโดยอัตโนมัติเนื่องจาก vector เป็นโครงสร้างข้อมูลแบบ dynamic

 

ตัวอย่าง C++ เพิ่มข้อมูลลงใน vector

#include <iostream>
#include <vector>

int main() {
    std::vector<int> data = {1, 2, 3, 4, 5};
    

    data.push_back(6);
    

    for (int i = 0; i < data.size(); i++) {
        std::cout << data[i] << " ";
    }
    return 0;
}

ผลลัพธ์

1 2 3 4 5 6

จากตัวอย่างเพิ่มข้อมูลลงใน vector ด้วยคำสั่ง push_back ซึ่งข้อมูลใหม่จะถูกเพิ่มในลำดับท้ายสุดของ vector ภาษา C++

 

ตัวอย่าง C++ แก้ไขข้อมูลใน vector

#include <iostream>
#include <vector>

int main() {
    std::vector<int> data = {1, 2, 3, 4, 5};


    data[0] = 10;

    for (int i = 0; i < data.size(); i++) {
        std::cout << data[i] << " ";
    }
    return 0;
}

ผลลัพธ์

10 2 3 4 5 

จากตัวอย่าง C++ กรณีต้องการแก้ไขข้อมูลใน vector สามารถเข้าถึงข้อมูลได้เลขผ่านลำดับ (index) และกำหนดค่าใหม่ที่ต้องการได้

 

สรุป C++ vector คือโครงสร้างแบบ dynamic ลักษณะคล้ายกับ array แต่ array เป็นแบบ static กรณีต้องการจัดการชุดข้อมูลที่ต้องการความยืดหยุ่น และประสิทธิภาพในภาษา C++ แนะนำให้ลองใช้ vector

แก้ไข 1 ปีที่แล้ว
ชอบ
ลิ้งก์
แชร์
Devdit มีช่อง YouTube แล้ว
เราสร้างวิดีโอเกี่ยวกับเทคโนโลยี ทำตามง่ายๆ