我想创建一个函数,它接受两个相同大小的数组的输入并删除第二个数组中的所有元素,它们是第一个数组的元素的倍数。
这是我的尝试:
#include <iostream>
#include <vector>
#include <string>
#include <stdexcept>
#include <algorithm>
#include <cmath>
#include <list>
#include <algorithm>
using namespace std;
template<typename T, size_t N>
int multipl(T(&one)[N],T(&two)[N]){
for(int i = 0;i<N;++i){
for(int j = 0;j<N;++j){
if(two[j]%one[i] == 0 && one[i] !=1 && one[i] != two[j]){
two[j] = -1;
}
}
}
}
int main(){
int one[] = {2,5,2,5,5,11};
int two[] = {4,8,1,3,2,10};
multipl(one,two);
}
基本上我将所有元素替换为第一个数组中元素的倍数-1。右边我想删除数组two
中的所有元素,它们等于-1
。我该怎么办?
使用矢量会更容易,但我想尝试使用数组,以便更好地理解它们。