我是靠谱客的博主 犹豫大米,最近开发中收集的这篇文章主要介绍C++ 数组的替代品(vector 和 array),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

模板类 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)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部