概述
模板类 vector 和 array 是数组的替代品。
模板类vector类似于String类,也是一种动态数组。可以在运行阶段设置vector对象的长度,可以在追加数据或者插入数据。它是使用new创建动态数组的替代品。实际上,vector类确实使用new 和 delete来管理内存,但这种工作都是底层自动完成的。
模板类array。
vector类的功能逼数组强大,但付出的代价是效率稍低。如果您需要的是长度固定的数组。使用数组是更佳的选择,但代价是不那么方便和安全。于是C++11新增了模板类array。它也位于名称空间std中,与数组一样。array对象的长度也是固定的,也是用栈(静态内存分配),而不是自由存储区,因此,其效率与数组相同,但更方便更安全。
比较数组、vector对象和array对象
#include "dialog.h"
#include <QApplication>
#include <iostream>
#include <vector> //STL C++98
#include <array> //C++11
int main(int argc, char *argv[])
{
using namespace std;
QApplication a(argc, argv);
Dialog w;
w.show();
double a1[4] = {1.2, 2.4, 3.6, 4.8};
//C++98 STL
vector<double> a2(4);
a2[0] = 1.0/3.0;
a2[1] = 1.0/5.0;
a2[2] = 1.0/7.0;
a2[3] = 1.0/9.0;
array<double, 4> a3 = {3.14, 2.72, 1.62, 1.4};
array<double, 4> a4;
a4 = a3;
cout << "a1[2]" << a1[2] << "at" << &a1[2] << endl;
cout << "a2[2]" << a2[2] << "at" << &a2[2] << endl;
cout << "a3[2]" << a3[2] << "at" << &a3[2] << endl;
cout << "a4[2]" << a4[2] << "at" << &a4[2] << endl;
return a.exec();
}
C++的三种复合类型:数组、结构和指针。
区分一下具体作用:
数组可以在一个数据对象中存储多个同种类型的值,通过使用索引或下标,可以访问数组中各个元素。
结构可以讲多个不同类型的值存储在同一个数据对象中,可以使用成员关系运算符(.)来访问其中的成员。
指针是被设计用来存储地址的变量。
最后
以上就是犹豫大米为你收集整理的C++ 数组的替代品(vector 和 array)的全部内容,希望文章能够帮你解决C++ 数组的替代品(vector 和 array)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复