c++

c++静态数组在STL中的应用

小樊
83
2024-09-04 18:15:11
栏目: 编程语言

C++ STL(标准模板库)是一个功能强大的库,提供了许多常用的数据结构和算法。在 C++ STL 中,并没有直接支持静态数组的容器。但是,你可以使用 C++ STL 中的 std::array 或者 std::vector 来实现类似静态数组的功能。

  1. std::array: std::array 是一个固定大小的数组容器,它在编译时确定大小,不能动态调整。这意味着你需要在创建 std::array 时指定其大小,之后无法更改。与静态数组类似,std::array 在栈上分配内存,因此它的性能通常比 std::vector 更高。

示例:

#include<iostream>
#include<array>

int main() {
    std::array<int, 5> arr = {1, 2, 3, 4, 5};

    for (int i = 0; i < arr.size(); ++i) {
        std::cout<< arr[i] << " ";
    }

    return 0;
}
  1. std::vector: std::vector 是一个动态数组容器,它可以在运行时调整大小。虽然它的内存是在堆上分配的,但它提供了与静态数组类似的操作。你可以将 std::vector 视为一个可以动态调整大小的静态数组。

示例:

#include<iostream>
#include<vector>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};

    for (int i = 0; i < vec.size(); ++i) {
        std::cout<< vec[i] << " ";
    }

    return 0;
}

总之,虽然 C++ STL 没有直接支持静态数组的容器,但你可以使用 std::arraystd::vector 来实现类似静态数组的功能。在需要固定大小的数组时,可以选择 std::array;在需要动态调整大小的数组时,可以选择 std::vector

0
看了该问题的人还看了