为什么可变长数组不是 C++ 标准的一部分?


在堆栈上创建一个潜在的大型数组不是个好主意,因为堆栈通常只有很小的可用空间。如果你提前知道了大小,可以使用一个静态数组。如果你在提前不知道大小的情况下,将会编写不安全的代码。可变长数组不能原生包含在 C++ 中,因为它们需要类型系统做出巨大的改变。

C++ STL 中提供了可变长数组在 C++ 中的替代方案,即 vector。可以使用它,就像 −

示例

#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

更新于: 24-6 月 -2020 年

415 次浏览

开启您的 职业生涯

完成课程后获得认证

开始
广告