C++ 找出两个序列之间的差异
我写了一个代码,在两个数组序列之间寻找差异。有很多版本我都试过并成功了C++ 找出两个序列之间的差异,c++,arrays,difference,intersect,C++,Arrays,Difference,Intersect,我写了一个代码,在两个数组序列之间寻找差异。有很多版本我都试过并成功了 #包括 int main(){ 常数int N=10; int inputFirst[N]; int输入秒[N]; 整数输出[N]; int j=0; 对于(int i=0;i>输入优先[i]; } 对于(int i=0;i>输入秒[i]; } 对于(int i=0;i
#包括
int main(){
常数int N=10;
int inputFirst[N];
int输入秒[N];
整数输出[N];
int j=0;
对于(int i=0;i>输入优先[i];
}
对于(int i=0;i>输入秒[i];
}
对于(int i=0;i 对于(int i=0;i您正在通过索引比较项目。您应该检查第二个序列是否包含第一个序列中的项目。(反之亦然)如果您迭代第一个序列,并检查如果项目出现在第二个序列中,您将得到您想要的
简而言之,数字可以出现在不同的索引中
让我们编写一个简单的助手函数
bool contains(const int* array, int size, int item)
{
for (int i = 0; i < size; ++i)
if(array[i]==item)
return true;
return false;
}
for (int i = 0; i < N; i++) {
if(!contains(inputSecond,N,inputFirst[i]))
output[j++] = inputFirst[i]
}
bool包含(常量int*数组、int大小、int项)
{
对于(int i=0;i
并使用此辅助函数
bool contains(const int* array, int size, int item)
{
for (int i = 0; i < size; ++i)
if(array[i]==item)
return true;
return false;
}
for (int i = 0; i < N; i++) {
if(!contains(inputSecond,N,inputFirst[i]))
output[j++] = inputFirst[i]
}
for(int i=0;i
您只是在检查中的第一个数组中的数字是否在第二个数组中的相应位置未找到。显然,您需要检查第一个数组中的数字是否在第二个数组中的任何位置未找到。为此,您需要另一个循环。简单的方法是编写一个函数,检查一个整数是否为一个整数Y在数组中。一旦你编写了该函数,你就可以在主函数中使用它。这是编写程序的简单方法,将问题分解成更小的部分,不要试图在一大堆代码中解决所有问题。