ต้องสร้างอาร์เรย์ขนาดใหญ่ที่เป็นไปได้บนสแต็ก ซึ่งโดยทั่วไปจะมีพื้นที่ว่างเพียงเล็กน้อยก็ไม่ดี หากคุณทราบขนาดล่วงหน้า คุณสามารถใช้อาร์เรย์แบบคงที่ได้ และถ้าคุณไม่ทราบขนาดล่วงหน้า คุณจะต้องเขียนโค้ดที่ไม่ปลอดภัย ไม่สามารถรวมอาร์เรย์ที่มีความยาวผันแปรได้ในภาษา C++ เนื่องจากจะต้องมีการเปลี่ยนแปลงครั้งใหญ่ในระบบประเภท
ทางเลือกแทนอาร์เรย์ความยาวผันแปรใน C++ มีให้ใน C++ STL ซึ่งเป็นเวกเตอร์ คุณสามารถใช้เช่น -
ตัวอย่าง
#include<iostream>
#include<vector>
using namespace std;
int main() {
vector<int> vec;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);
vec.push_back(4);
vec.push_back(5);
// ...
// To iterate over it:
for(vector<int>::iterator it = vec.begin(); it != vec.end(); it++) {
cout << *it << endl;
}
return 0;
} ผลลัพธ์
สิ่งนี้จะให้ผลลัพธ์ -
1 2 3 4 5