📜  C++ STL中的array :: fill()和array :: swap()(1)

📅  最后修改于: 2023-12-03 14:39:51.765000             🧑  作者: Mango

C++ STL中的array::fill()和array::swap()

std::array是一个模板类,表示一个固定大小的数组。

其中,fill()swap()是两个重要的成员函数。本文将介绍这两个函数及其用法。

fill()

fill()函数可以将数组的所有元素赋予同一个值。

#include <array>
#include <iostream>

int main() {
    std::array<int, 5> arr;
    arr.fill(0);
    
    for (int i = 0; i < 5; ++i) {
        std::cout << arr[i] << " ";
    }
    std::cout << std::endl;
    
    return 0;
}

输出:

0 0 0 0 0

如上代码所示,我们可以通过fill()函数,将数组arr的所有元素赋值为0。输出结果也符合预期。

同时,我们也可以将数组元素赋值为其他的值。例如:

arr.fill(1);
swap()

swap()函数可以将两个数组交换。

#include <array>
#include <iostream>

int main() {
    std::array<int, 5> arr1 = {1, 2, 3, 4, 5};
    std::array<int, 5> arr2 = {6, 7, 8, 9, 10};
    
    for (int i = 0; i < 5; ++i) {
        std::cout << arr1[i] << " " << arr2[i] << std::endl;
    }
    
    arr1.swap(arr2);
    
    for (int i = 0; i < 5; ++i) {
        std::cout << arr1[i] << " " << arr2[i] << std::endl;
    }
    
    return 0;
}

输出:

1 6
2 7
3 8
4 9
5 10
6 1
7 2
8 3
9 4
10 5

如上代码所示,我们可以通过swap()函数,将数组arr1和数组arr2交换。

最终结果表明,两个数组中的元素得到了互换。