Исходный код, который я написал, использует следующие аргументы:
int m = размер отсортированного списка 1
int n = размер отсортированного списка 2
int A [] = отсортированный список 1
int B [] = отсортированный список 2
int C [] = объединенный список из 1 и 2
Меня попросили добавить этот код в существующий файл, который использует эти разные аргументы:
IntVectorIt start1
IntVectorIt end1
IntVectorIt start2
IntVectorIt end2
IntVectorIt start3
Здесь определены эти переменные (n - размер первого отсортированного массива, m - размер второго отсортированного массива):
typedef vector<int> IntVector;
typedef IntVector::iterator IntVectorIt;
IntVector Vector1(n);
IntVectorIt start1,end1,it1;
start1 = Vector1.begin();
end1 = Vector1.end();
IntVector Vector2(m);
IntVectorIt start2,end2,it2;
start2 = Vector2.begin();
end2 = Vector2.end();
IntVector Vector3(n+m);
IntVectorIt start3,end3,it3;
start3 = Vector3.begin();
end3 = Vector3.end();
//--The variables for my version of merge
IntVector MyVector(n+m);
IntVectorIt mystart,myend,myit;
mystart = MyVector.begin();
myend = MyVector.end();
Мой код слияния:
void mymerge(int m, int n, int A[], int B[], int C[])
{
int i, j, k = 0;
while (i < m && j < n)
{
if (A[i] <= B[j])
{
C[k] = A[i];
i++;
}
else
{
C[k] = B[j];
j++;
}
k++;
}
if (i < m)
{
for (int p = i; p < m; p++)
{
C[k] = A[p];
k++;
}
}
else
{
for (int p = j; p < n; p++)
{
C[k] = B[p];
k++;
}
}
}
Если бы кто-нибудь мог помочь мне понять, как я мог бы использовать эти итераторы в качестве аргументов, это помогло бы мне на тонну. Заранее спасибо.