两个有序非重数组,如若查找数组之间的重复元素

两个有序非重数组,如果查找数组之间的重复元素
一个元素多,一个少,都是整数

------解决方案--------------------
有序,这点很重要。(假定为升序来说明)
可以放两个指针,分别指向两个数组的头。假设为 *p1 和 *p2吧
1、*p1 == *p2(这里数据类型是整数,可以这么做)时,这两个数重复,输出,并且 p1++, p2++;
2、*p1 < *p2 时,p1++;
3、*p1 > *p2 时,p2++;
重复以上步骤,直到有一个指针指向数组的末端(这里可以加一个足够特别的数在数组末端来表示数组取值结束,比如超出取值范围的数)

static const int END = -100000;
int data1[] = {1, 2, 4, 5, 6, 7, END};
int data2[] = {3, 5, 6, END};
int *p1 = data1;
int *p2 = data2;
while (*p1 != END && *p2 != END)
{
    if (*p1 == *p2)
    {
        cout << *p1 << " == " << *p2 << endl;
        p1++;
        p2++;
    }
    else if (*p1 < *p2)
    {
        p1++;
    }
    else // *p1 > *p2
    {
        p2++;
    }
}