日志
数组的替代品 模板类vector和array
2017-05-02 20:46
模板类vector是一种动态数组,可以在运行阶段设置vector对象的长度,在qt中有Qvector,性质一样。
我们知道数组的申明中,必须指定大小,但实际开发中,我们不确定元素的个数,这个时候我们就可以采用模板类vecyor 示例: #include <vector> using namespace std; vector<int>vi; int n; cin >> n; vector<int>vd(n); 创建一个名为vt的vector对象,它存储n_elem个类型为typename的元素 vector<typename>vt(n_elem); 其中vi是一个vector<int>对象,vd是一个vector<double>对象,并且长度问n; vector类的功能比较强大,但付出的代价是效率稍低。如果需要的是固定长度的数组,使用数组是更佳的选择,但代价是不那么方便和安全。鉴于此,C++11中新增了模板类array 与数组一样,array对象的长度也是固定的,也使用栈,而不是自由存储区,因此效率和数组相同。但更方便,更安全。array对象的创建和vector稍有不同 示例: #include <array> using nanespace std; array<int,5>ai; array<double,4>ad = {1.2, 1.3, 3.1, 4.3} 推广:array<typename,n_elem>arr; |
下一篇: C++中容易犯错的地方
上一篇: qt 文件路径中包含中文打开失败