ต้องสร้างอาร์เรย์ขนาดใหญ่ที่เป็นไปได้บนสแต็ก ซึ่งโดยทั่วไปจะมีพื้นที่ว่างเพียงเล็กน้อยก็ไม่ดี หากคุณทราบขนาดล่วงหน้า คุณสามารถใช้อาร์เรย์แบบคงที่ได้ และถ้าคุณไม่ทราบขนาดล่วงหน้า คุณจะต้องเขียนโค้ดที่ไม่ปลอดภัย ไม่สามารถรวมอาร์เรย์ที่มีความยาวผันแปรได้ในภาษา 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