c++数组操作
时间: 2025-04-24 13:13:06 AIGC 浏览: 29
### C++ 中数组的操作方法与示例
#### 一维数组的声明、初始化和遍历
在C++中,可以使用简单的语法来定义并初始化一维数组。下面的例子展示了如何创建一个整型的一维数组,并将其所有元素设置为特定值:
```cpp
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
int numbers[5] = {0, 1, 2, 3, 4}; // 初始化数组
// 使用 fill 函数填充整个数组
fill(numbers, numbers + 5, -1);
// 输出数组中的每一个元素
for (int i = 0; i < 5; ++i) {
cout << "numbers[" << i << "]: " << numbers[i] << endl;
}
return 0;
}
```
这段代码首先通过`fill()`函数将数组内的五个位置都设为了-1,接着利用for循环逐个打印出了这些被修改后的数值[^2]。
#### 排序算法的应用于数组
对于给定的一个未排序的整数序列,可以通过编写冒泡排序逻辑对其进行升序排列。这里给出了一段具体的实现方式:
```cpp
#include <iostream>
using namespace std;
int main() {
int arr[9] = {4, 2, 8, 0, 5, 7, 1, 3, 9};
// 实现冒泡排序
for (int i = 0; i < 9 - 1; i++) {
for (int j = 0; j < 9 - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
swap(arr[j], arr[j + 1]);
}
}
}
// 显示排序后的结果
for (auto& elem : arr) {
cout << elem << ' ';
}
return 0;
}
```
此程序片段实现了经典的冒泡排序过程,在每一轮迭代过程中比较相邻两个元素大小关系,并交换它们的位置直到完成全部数据项之间的相对顺序调整工作[^3]。
#### 多维(二维)数组处理实例
当涉及到多维度的数据结构时,比如表格形式存储的信息,则需要用到更高阶次元类型的容器——即所谓的“二维数组”。下述源码说明了怎样构建以及展示这样一个对象的内容:
```cpp
#include <iostream>
using namespace std;
int main() {
const size_t rows = 3, cols = 4;
int twoDArray[rows][cols] = {{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}};
cout << "Two-Dimensional Array:\n";
for (size_t row = 0; row != rows; ++row) {
for (size_t col = 0; col != cols; ++col) {
cout << twoDArray[row][col] << '\t';
}
cout << "\n";
}
return 0;
}
```
上述例子构造了一个具有三行四列布局特点的小规模矩阵,并采用双重嵌套式的for语句完成了对其内部成员变量逐一访问的任务;同时注意到了行列索引范围的选择应当依据实际设定好的尺寸参数而定[^1]。
#### 数组作为函数实参传递案例分析
最后值得一提的是有关把数组当作形参与之对应的调用者所提供的具体实体之间相互作用的情形。由于C/C++语言特性所限,传入子程序体内的仅仅是原始指针而非真正意义上的副本拷贝,因此任何针对后者作出的变化都会反映回前者之上。考虑如下情形下的编码实践:
```cpp
void modify(int* arrayPtr, unsigned length) {
for(unsigned idx=0 ;idx<length;++idx){
*(arrayPtr+idx)*=-1;
}
}
// 调用modify()
int sampleArr[] = {-1,-2,-3,-4,-5};
unsigned sz = sizeof(sampleArr)/sizeof(*sampleArr);
modify(sampleArr,sz);
for(auto val:sampleArr){cout<<val<<" ";}// 应该输出正数序列
```
在这个场景里头,外部定义好了待加工的对象之后交给名为`modify`的过程去执行某些变换动作,最终再回到原处检验其状态是否按照预期发生了改变。这证明了即使是在不同层次的作用域之下依旧能够保持良好的交互性和一致性。
阅读全文
相关推荐

















