如何用c++写出动态数组
时间: 2023-04-02 15:03:59 浏览: 154
可以使用指针和内存分配函数来实现动态数组。首先,定义一个指针变量,然后使用 malloc 函数为其分配内存空间,指定分配的大小为所需数组元素个数乘以每个元素的大小。例如,要创建一个包含 10 个 int 类型元素的动态数组,可以使用以下代码:
int *arr;
arr = (int*)malloc(10 * sizeof(int));
这将分配一个包含 10 个 int 类型元素的数组,并将其地址存储在 arr 指针变量中。可以像使用普通数组一样使用该动态数组,例如:
arr[] = 1;
arr[1] = 2;
// ...
使用完动态数组后,需要使用 free 函数释放其内存空间,例如:
free(arr);
相关问题
使用c++写一段数组作为形参的方法
这是一个非常基础的 C 语言编程问题。我们可以声明一个函数,将数组作为形参传递给它。以下是一个例子:
```c
#include <stdio.h>
void printArray(int arr[], int size) {
for(int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
}
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr)/sizeof(arr[0]);
printArray(arr, size);
return 0;
}
```
在这个例子中,我们使用 `printArray` 函数来打印一个数组。该函数接受一个整数数组和一个整数大小作为参数,使用 for 循环遍历数组并打印每个元素。在主函数中,我们创建了一个名为 `arr` 的整数数组,然后计算出其大小并将其作为参数传递给 `printArray` 函数。
用C++写出数组中求最值
在C++中,可以使用循环或者迭代器来查找数组中的最大值和最小值。这里给出两种简单的示例:
**1. 使用循环:**
```cpp
#include <iostream>
int findMaxMin(int arr[], int size) {
if (size == 0) {
std::cout << "Array is empty.\n";
return -1; // 或者返回NULL或其他表示错误的值
}
int maxVal = arr[0];
int minVal = arr[0];
for (int i = 1; i < size; i++) {
if (arr[i] > maxVal) {
maxVal = arr[i];
} else if (arr[i] < minVal) {
minVal = arr[i];
}
}
return maxVal, minVal;
}
int main() {
int arr[] = {5, 10, 15, 20, 25};
int n = sizeof(arr) / sizeof(arr[0]);
int max, min;
max, min = findMaxMin(arr, n);
std::cout << "Max value: " << max << ", Min value: " << min << "\n";
return 0;
}
```
**2. 使用STL算法:**
C++标准库`<algorithm>`提供了一个名为`std::minmax_element()`的函数,可以直接找到数组中的最大值和最小值。
```cpp
#include <iostream>
#include <algorithm>
int main() {
int arr[] = {5, 10, 15, 20, 25};
int n = sizeof(arr) / sizeof(arr[0]);
auto max_min = *std::minmax_element(arr, arr + n);
std::cout << "Max value: " << max_min.first << ", Min value: " << max_min.second << "\n";
return 0;
}
```
在这两个例子中,数组的最值会在程序运行时被计算出来。
阅读全文