数据结构动态数组

Posted dmndxld

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构动态数组相关的知识,希望对你有一定的参考价值。

数组具有固定的容量,我们需要在初始化时指定数组的大小。有时它会非常不方便并可能造成浪费。

因此,大多数编程语言都提供内置的动态数组它仍然是一个随机存取的列表数据结构,大小是可变的例如,在 C++ 中的 vector,以及在 Java 中的 ArrayList

 

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

int main() {
    // 1. initialize
    vector<int> v0;
    vector<int> v1(5, 0);
    // 2. make a copy
    vector<int> v2(v1.begin(), v1.end());
    vector<int> v3(v2);
    // 2. cast an array to a vector
    int a[5] = { 0, 1, 2, 3, 4 };
    vector<int> v4(a, *(&a + 1));
    // 3. get length
    cout << "The size of v4 is: " << v4.size() << endl;
    // 4. access element
    cout << "The first element in v4 is: " << v4[0] << endl;
    // 5. iterate the vector
    cout << "[Version 1] The contents of v4 are:";
    for (int i = 0; i < v4.size(); ++i) {
        cout << " " << v4[i];
    }
    cout << endl;
    cout << "[Version 2] The contents of v4 are:";
    for (int& item : v4) {
        cout << " " << item;
    }
    cout << endl;
    cout << "[Version 3] The contents of v4 are:";
    for (auto item = v4.begin(); item != v4.end(); ++item) {
        cout << " " << *item;
    }
    cout << endl;
    // 6. modify element
    v4[0] = 5;
    // 7. sort
    sort(v4.begin(), v4.end());
    // 8. add new element at the end of the vector
    v4.push_back(-1);
    // 9. delete the last element
    v4.pop_back();
    system("pause");
}

 这里学习一下 auto关键字:auto可以在声明变量的时候根据变量初始值的类型自动为此变量选择匹配的类型

ps:auto 变量必须在定义时初始化,这类似于const关键字。

 

以上是关于数据结构动态数组的主要内容,如果未能解决你的问题,请参考以下文章

在 ViewPager 中使用视图创建动态片段

动态 Rstudio 代码片段

是否可以动态编译和执行 C# 代码片段?

动态数组作为纹理GLSL

支持动态或静态片段的不同屏幕尺寸?

VSCode自定义代码片段—— 数组的响应式方法