1 本课主要内容:
- std::array 固定数组的声明
- 基本使用:赋值、访问数组、遍历等
2 主要知识点:
-
std::array 固定数组的声明
#include <array>// std::array 固定数组例子
std::array<int, 5> array1; // 未初始化数组元素的值
std::array<int, 5> array2{ 1, 2 }; // 初始化为:1 2 0 0 0
std::array<int, 5> array3{ 1, 2, 3, 4, 5 }; // 初始化为:1 2 3 4 5
-
赋值
// 数组赋值
array1[0] = 10; // 使用 [INDEX] 赋值
array1.at(1) = 20; // 使用 at(INDEX) 赋值
-
访问数组元素
// 访问数组元素
const int v1 = array2[0]; // 使用 [INDEX] 访问
const int v2 = array2.at(1); // 使用 at(INDEX) 访问
const int v3 = array2.front(); // 访问第一个
const int v4 = array2.back(); // 访问最后一个
-
遍历数组
// 遍历 array 数组:例子1
for (const auto& v : array3) {std::cout << v << std::endl;
}// 例子2:
for (int i=0; i < array3.size(); ++i) {const int v = array3.at(i);std::cout << v << std::endl;
}
-
其他函数
// 数组大小
const int arraySize = array2.size();
// 判断数组是否为空
const bool isEmpty = array2.empty();
-
完整例子代码
#include <array>// std::array 固定数组例子
std::array<int, 5> array1; // 未初始化数组元素的值
std::array<int, 5> array2{ 1, 2 }; // 初始化为:1 2 0 0 0
std::array<int, 5> array3{ 1, 2, 3, 4, 5 }; // 初始化为:1 2 3 4 5
// 数组赋值
array1[0] = 10; // 使用 [INDEX] 赋值
array1.at(1) = 20; // 使用 at(INDEX) 赋值
// 访问数组元素
const int v1 = array2[0]; // 使用 [INDEX] 访问
const int v2 = array2.at(1); // 使用 at(INDEX) 访问
const int v3 = array2.front(); // 访问第一个
const int v4 = array2.back(); // 访问最后一个
std::cout << "array[0] = " << v1 << std::endl;
std::cout << "array.at(1) = " << v2 << std::endl;
std::cout << "array.front() = " << v3 << std::endl;
std::cout << "array.back() = " << v4 << std::endl;
// 数组大小
const int arraySize = array2.size();
std::cout << "array.size() = " << arraySize << std::endl;
// 判断数组是否为空
const bool isEmpty = array2.empty();
std::cout << "array.empty() = " << isEmpty << std::endl;
// 遍历 array 数组
for (const auto& v : array3) {std::cout << v << std::endl;
}
3 注意事项:
- 访问固定数组需要注意下标越界,就是 array[index], array.at(index) 访问数组时 index
4 课后练习:
- 练习1:利用 std::generate_canonical 产生 100 组 [0,1] 范围内随机浮点数,存放到 array 数组1;
- 练习2:遍历数组1,判断元素值 <0.5,元素值 +1.0,把结果更新到数组元素值,最后再遍历打印出来
附录:在线视频课程
【C++程序员必修第一课】C++基础课程