C++ std::array 用法與範例

本篇 ShengYu 介紹 C++ std::array 用法與範例,std::array 是 C++ 標準函式庫提供的一個容器,用於表示固定大小的陣列。可以代替傳統的 C 陣列,它在某些情況下比傳統的 C 陣列更具優勢,因為它提供了更好的性能、更多的安全性與功能。接下來看看 std::array 用法範例。

要使用 std::array 的話,需要引入的標頭檔: <array>

C++ 建立 std::array

C++ std::array 的大小在建立時就被固定了,無法改變。這意味著它既提供了陣列的效率,又提供了容器的安全性。
你可以使用不同的方法來建立 std::array,範例如下,

std-array.cpp
1
2
3
4
5
6
7
8
9
10
// g++ std-array.cpp -o a.out
#include <iostream>
#include <array>

int main() {
std::array<int, 3> myArray; // 建立一個包含3個整數的陣列
std::array<double, 3> anotherArray = {1.1, 2.2, 3.3}; // 建立並初始化陣列

return 0;
}

訪問 std::array 元素

使用 [] 運算子來訪問該 std::array 的元素,

std-array2.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// g++ std-array2.cpp -o a.out
#include <iostream>
#include <array>

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

int value = myArray[2]; // 訪問第三個元素(索引為2)
std::cout << value << "\n";

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

return 0;
}

輸出如下:

1
2
3
4
3
1
2
3

取得 std::array 大小

使用 size() 函數來取得該 std::array 的大小,

std-array3.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// g++ std-array3.cpp -o a.out
#include <iostream>
#include <array>

int main() {
std::array<int, 3> myArray;
std::array<double, 3> anotherArray = {1.1, 2.2, 3.3};

size_t size = myArray.size();
std::cout << size << "\n";

size_t size2 = anotherArray.size();
std::cout << size2 << "\n";

return 0;
}

輸出如下:

1
2
3
3

遍歷 std::array

你可以使用 for range 或迭代器來遍歷 std::array

std-array4.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// g++ std-array4.cpp -o a.out
#include <iostream>
#include <array>

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

for (const auto& element : myArray) {
// 使用 element
std::cout << element << "\n";
}

for (std::array<int, 3>::iterator it = myArray.begin(); it != myArray.end(); ++it) {
// 使用 *it
std::cout << *it << "\n";
}

return 0;
}

輸出如下:

1
2
3
4
5
6
1
2
3
1
2
3

修改元素

使用 [] 運算子可以修改該 std::array 的元素,

std-array5.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// g++ std-array5.cpp -o a.out
#include <iostream>
#include <array>

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

myArray[1] = 100; // 修改第二個元素

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

return 0;
}

輸出如下:

1
2
3
1
100
3

檢查是否為空

使用 empty() 函數來檢查該 std::array 是否為空,

std-array6.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// g++ std-array6.cpp -o a.out
#include <iostream>
#include <array>

int main() {
std::array<int, 3> myArray = {1, 2, 3};
std::array<double, 3> anotherArray;

bool isEmpty = myArray.empty();
std::cout << isEmpty << "\n";

bool isEmpty2 = anotherArray.empty();
std::cout << isEmpty2 << "\n";

return 0;
}

輸出如下:

1
2
0
0

比較 std::array

你可以使用 ==!= 運算子來比較兩個 std::array 是否相等,

std-array7.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// g++ std-array7.cpp -o a.out
#include <iostream>
#include <array>

int main() {
std::array<int, 3> myArray1 = {1, 2, 3};
std::array<int, 3> myArray2 = {1, 2, 3};
std::array<int, 3> myArray3 = {4, 5, 6};
std::array<int, 3> myArray4;

if (myArray1 == myArray2) {
std::cout << "與 myArray2 相等\n";
}

if (myArray1 == myArray3) {
std::cout << "與 myArray3 相等\n";
}

if (myArray1 == myArray4) {
std::cout << "與 myArray4 相等\n";
}

return 0;
}

輸出如下:

1
與 myArray2 相等

以上就是 C++ std::array 用法與範例介紹,
如果你覺得我的文章寫得不錯、對你有幫助的話記得 Facebook 按讚支援一下!

其它相關文章推薦
C/C++ 新手入門教學懶人包
std::string 用法與範例
std::vector 用法與範例
std::sort 用法與範例
std::map 用法與範例
std::set 用法與範例