使用shift删除数组c ++中的多个元素

时间:2018-01-22 13:17:39

标签: c++ arrays

我想创建一个函数,它接受两个相同大小的数组的输入并删除第二个数组中的所有元素,它们是第一个数组的元素的倍数。

这是我的尝试:

#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。我该怎么办?

使用矢量会更容易,但我想尝试使用数组,以便更好地理解它们。

0 个答案:

没有答案