Vector มีความสามารถในการปรับขนาดอัตโนมัติเหมือน dynamic arrays เมื่อมีการแทรกหรือลบสมาชิก Container จะจัดการหน่วยความจำโดยอัตโนมัติ สมาชิกของ vector จะถูกจัดเก็บในหน่วยความจำที่ติดกัน (contiguous storage) ทำให้สามารถเข้าถึงและวนลูปได้โดยใช้ iterator ข้อมูลสามารถแทรกหรือลบได้ที่จุดเริ่มต้น กลาง หรือท้ายของ vector
นี่คือโปรแกรม C++ สำหรับสาธิตฟังก์ชันต่างๆ ของ vector
อัลกอริทึม
เริ่มต้น
ประกาศตัวแปร v เป็น vector
ประกาศตัวแปร it เป็น iterator ของ vector
ประกาศตัวแปร c และ i เป็น integer
while (1) ทำ
แสดง "1. ขนาดของ Vector"
แสดง "2. แทรกสมาชิกเข้า Vector"
แสดง "3. ลบสมาชิกท้ายของ Vector"
แสดง "4. ปรับขนาด Vector"
แสดง "5. จองพื้นที่ Vector (Reserve)"
แสดง "6. แสดงความจุของ Vector"
แสดง "7. แสดงด้วย Iterator"
แสดง "8. ล้าง Vector"
แสดง "9. ออก"
แสดง "เลือกเมนู: "
รับค่าตัวแปร c
Switch(c)
Case 1: แสดง "ขนาดของ Vector: " และ เรียก size()
Case 2: แสดง "ใส่ค่าที่ต้องการแทรก: " รับค่า i เรียก push_back()
Case 3: แสดง "ลบสมาชิกท้ายที่แทรก:" เรียก pop_back()
Case 4: แสดง "ปรับขนาด vector:" เรียก resize(10)
Case 5: แสดง "จองพื้นที่ vector:" เรียก reserve(100)
Case 6: แสดง "ความจุของ vector: " เรียก capacity()
Case 7: แสดง "แสดง Vector ด้วย Iterator: " วนลูป it = v.begin() ถึง v.end() แสดง *it
Case 8: เรียก clear() แสดง "Vector Cleared"
Case 9: เรียก exit()
Default: แสดง "ตัวเลือกผิด"
สิ้นสุด
ตัวอย่างโค้ด
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> v;
vector<int>::iterator it;
int c, i;
while (1) {
cout << "1. ขนาดของ Vector" << endl;
cout << "2. แทรกสมาชิกเข้า Vector" << endl;
cout << "3. ลบสมาชิกท้ายของ Vector" << endl;
cout << "4. ปรับขนาด Vector" << endl;
cout << "5. จองพื้นที่ Vector (Reserve)" << endl;
cout << "6. แสดงความจุของ Vector" << endl;
cout << "7. แสดงด้วย Iterator" << endl;
cout << "8. ล้าง Vector" << endl;
cout << "9. ออก" << endl;
cout << "เลือกเมนู: ";
cin >> c;
switch(c) {
case 1:
cout << "ขนาดของ Vector: ";
cout << v.size() << endl;
break;
case 2:
cout << "ใส่ค่าที่ต้องการแทรก: ";
cin >> i;
v.push_back(i);
break;
case 3:
cout << "ลบสมาชิกท้ายที่แทรก:" << endl;
v.pop_back();
break;
case 4:
cout << "ปรับขนาด vector:" << endl;
v.resize(10);
break;
case 5:
cout << "จองพื้นที่ vector:" << endl;
v.reserve(100);
break;
case 6:
cout << "ความจุของ vector: ";
cout << v.capacity() << endl;
break;
case 7:
cout << "แสดง Vector ด้วย Iterator: ";
for (it = v.begin(); it != v.end(); it++) {
cout << *it << " ";
}
cout << endl;
break;
case 8:
v.clear();
cout << "Vector Cleared" << endl;
break;
case 9:
exit(1);
break;
default:
cout << "ตัวเลือกผิด" << endl;
}
}
return 0;
}
ผลลัพธ์
1. ขนาดของ Vector 2. แทรกสมาชิกเข้า Vector 3. ลบสมาชิกท้ายของ Vector 4. ปรับขนาด Vector 5. จองพื้นที่ Vector (Reserve) 6. แสดงความจุของ Vector 7. แสดงด้วย Iterator 8. ล้าง Vector 9. ออก เลือกเมนู: 1 ขนาดของ Vector: 0 ... (ตัวอย่างการทำงานแบบโต้ตอบ)