导入
数组与连续数据
了解数组,用于在连续内存中存储固定大小的数据序列。
代码示例
1type name[size];
...
A visualization of an array in memory
1#include <iostream> 2 3int main() 4{ 5 double monthlyTemperatures[30]; // 有效:为 30 个 double 分配空间 6 7 // 2. 常量大小(现代最佳实践) 8 // 使用命名常量使代码更易读且易于维护。 9 const int days = 7; 10 double dailyTemperatures[days]; // 有效:大小在编译时固定 11 12 // 3. 无效声明 13 int size = 10; 14 // int myBadArray[size]; // 错误:'size' 不是编译时常量 15 16 return 0; 17}
代码示例
1// 安全:所有 5 个元素都被设置为 0 2int clearBuffer[5] = {};
代码示例
1// 完全初始化 2int distinctValues[3] = { 10, 20, 30 };
代码示例
1// 值为 5, 5, 0, 0, 0 2int highScores[5] = { 5, 5 };
1// 编译器计算出 3 个元素。大小隐式为 3。 2int axes[] = { 1, 0, -1 };
代码示例
1int score[5] = {1, 2, 3, 4, 5};
...
Indices are used to access values
1#include <iostream> 2 3int main() { 4 int primes[5] = {2, 3, 5, 7, 11}; 5 6 // 读取:访问索引 0(第一个元素) 7 std::cout << "First prime: " << primes[0] << "\n"; 8 9 // 写入:修改索引 4(最后一个元素) 10 primes[4] = 13; 11 std::cout << "New last prime: " << primes[4] << "\n"; 12 13 return 0; 14}
1#include <iostream> 2 3int main() { 4 int primes[5] = {2, 3, 5, 7, 11}; 5 6 // 危险区域:越界访问 7 std::cout << primes[5] << "\n"; // 切勿这样做 8 9 return 0; 10}
1#include <iostream> 2#include <iterator> // For std::size 3 4int main() { 5 double prices[] = { 10.50, 5.99, 3.25, 12.00 }; 6 7 // 循环运行直到 i < 4(索引 0, 1, 2, 3)。 8 for (int i = 0; i < std::size(prices); ++i) { 9 std::cout << "Item " << i << ": $" << prices[i] << "\n"; 10 } 11 12 return 0; 13}
1#include <iostream> 2 3int main() { 4 int scores[] = {90, 85, 78, 92, 88}; 5 6 for (int score : scores) { 7 std::cout << score << ","; 8 } 9 std::cout << std::endl; 10 11 // 就地修改 12 for (int& score : scores) { 13 score = score + 10; 14 } 15 16 for (int score : scores) { 17 std::cout << score << ","; 18 } 19 std::cout << std::endl; 20 21 return 0; 22}