【发布时间】:2020-12-22 07:10:16
【问题描述】:
我需要创建一个包含两个集合的联合数组,以 C 数组的形式给出。 这是我到目前为止所拥有的。我认为我的 if 条件是正确的,但输出只打印出一组该数组。 你能指出我做错了什么吗?
#include "union_intersection.h"
#include <iostream>
using namespace std;
template <typename T>
void Union(T* left, int left_size,
T* right, int right_size,
T* result, int& result_size)
{
int i=0, j=0;
while (i< left_size && j <right_size){
if (left < right)
{
result = left;
cout<< *result<< "\t";
i++;
left++;
result_size++;
}
else if (right<left)
{
result =right;
cout<< *result << "\t";
j++;
right++;
result_size++;
}
else
{
result =left;
cout<< *result <<"\t";
i++; j++;
left++;
right++;
result_size++;
}
}
}
【问题讨论】:
-
你介意发布一个Minimal, Reproducible Example,包括函数
Union的调用者吗? -
我认为
if条件是错误的,因为比较这些指针似乎不是您想要做的。 -
这段代码没有改变
result数组。
标签: c++ arrays set-operations