vector<ll>::iterator it;用这个函数把原动态数组中不为0的数传到b[n]中的代码c++
时间: 2024-03-14 09:45:59 浏览: 39
假设原动态数组为`a`,长度为`len`,目标数组为`b`,长度为`n`,其中`n >= len`,代码如下:
```c++
vector<ll>::iterator it = a.begin();
for(int i = 0; i < len; i++){
if(*it != 0){
b[i] = *it;
}
it++;
}
// 如果目标数组长度大于原数组长度,则将多余部分清零
if(n > len){
for(int i = len; i < n; i++){
b[i] = 0;
}
}
```
这段代码中,使用`vector<ll>::iterator`类型的迭代器`it`遍历原动态数组`a`,判断当前位置上是否为0,如果不为0,就将对应的数存入目标数组`b`中。如果目标数组长度大于原数组长度,则将多余部分清零,保证目标数组的长度为`n`。
阅读全文