C++中如何往一维数组里面添加值
时间: 2024-02-20 16:57:52 浏览: 21
在C++中,你可以使用下标运算符[]为一维数组中的元素赋值或添加值。下面是向一维数组中添加值的两种方法:
1. 使用下标运算符[]添加值
可以使用下标运算符[]为一维数组中的元素赋值或添加值。假设有一个一维数组arr,你想在末尾添加一个值val,则可以按如下方式添加:
```c++
arr[arr_size] = val;
arr_size++; // 更新数组大小
```
其中arr_size是一维数组的大小,初始值为0,表示数组中没有元素。每次添加一个元素后,都需要更新数组大小。
2. 使用指针变量添加值
还可以使用指针变量向一维数组中添加值。假设有一个一维数组arr,你想在末尾添加一个值val,则可以按如下方式添加:
```c++
*(arr + arr_size) = val;
arr_size++; // 更新数组大小
```
其中arr是一维数组的指针,初始值为数组首元素的地址,arr_size是一维数组的大小,初始值为0,表示数组中没有元素。每次添加一个元素后,都需要更新数组大小。
无论使用哪种方法,都需要保证添加的值不会超出一维数组的范围,否则会导致访问越界的错误。
相关问题
c++ vector一维数组
C++中的vector是一种动态数组,它具有与数组相同的特性,可以通过索引访问其元素,但与数组不同的是,vector的大小可以动态增加或减少。在使用vector时,只需指定其数据类型即可。以下是一些关于vector的基本操作:
1.创建vector:
```
vector<int> v; // 创建一个空的整型向量
vector<string> v(5); // 创建一个5个元素的字符串向量
vector<double> v(5, 3.14); // 创建一个5个元素值为3.14的双精度向量
```
2.访问vector元素:
```
v[i]; // 访问第i个元素
v.at(i); // 同上,但会进行越界检查
v.front(); // 访问第一个元素
v.back(); // 访问最后一个元素
```
3.修改vector元素:
```
v[i] = value; // 将第i个元素修改为value
v.push_back(value); // 在向量末尾添加一个元素
v.pop_back(); // 删除向量末尾的元素
v.insert(pos, value); // 在pos位置插入一个元素
v.erase(pos); // 删除pos位置的元素
v.clear(); // 删除所有元素
```
4.获取vector信息:
```
v.size(); // 返回向量中元素的个数
v.empty(); // 如果向量为空,则返回true,否则返回false
```
c++求一维数组的所有峰值
一维数组的峰值是指数组中比左右相邻元素都要大的元素。假设给定一个一维数组arr,我们可以通过遍历数组的每一个元素,判断其是否为峰值。
具体的算法如下:
1. 遍历数组arr的所有元素,从索引1开始,到索引arr.length-2结束。
2. 判断当前元素arr[i]是否比其左右相邻元素arr[i-1]和arr[i+1]都要大。若是,则将该元素加入到峰值数组中。
3. 返回峰值数组作为结果。
代码实现如下:
```python
def find_peaks(arr):
peaks = []
for i in range(1, len(arr)-1):
if arr[i] > arr[i-1] and arr[i] > arr[i+1]:
peaks.append(arr[i])
return peaks
# 测试示例
arr = [1, 2, 3, 4, 3, 2, 1]
peaks = find_peaks(arr)
print(peaks) # 输出 [4]
```
以上代码中,我们首先定义了一个函数find_peaks来实现寻找一维数组的峰值。然后,我们通过遍历数组并判断每个元素是否为峰值,将满足条件的元素添加到peaks数组中。最后,返回peaks数组作为结果。
以上是一种简单的寻找一维数组峰值的方法。对于一个长度为n的数组,时间复杂度为O(n),空间复杂度为O(1)。