моя проблема:FUNC список возврата <int> с арг (интермедиат Arry [INT], целочисленный массив [INT])
алгоритм работы я думаю ... но Visual Studio 2013 дает мне эту ошибку:
C2893 неизвестный тип std :: less :: оператор() (_ Ty1 & &, _Ty2 & &) const.
Мне нужно создать func, который принимает 2 массива int и возвращает список с элементами массивов, отсортированными и без элементов, которые повторяются в серии в списке.
list<int> sort_array(int *elenco1[C], int *elenco2[C])
{
list<int> merge1;
list<int> merge2;
for (int i = 0; i < C; ++i)
{
merge1.push_back(*elenco1[i]);
}
for (int i = 0; i < C; ++i)
{
merge2.push_back(*elenco2[i]);
}
merge1.sort();
merge2.sort();
merge1.merge(merge2);
merge1.sort();
list<int>::iterator inizio = merge1.begin();
list<int>::iterator fine = merge1.end();
for (inizio; inizio != fine; ++inizio)
{
for (fine; fine != inizio; --fine)
{
if (*fine == *inizio)
{
merge1.erase(inizio);
}
else{}
}
}
return merge1;
}
int main()
{
list<int> stampa;
int* elenco1[C];
int* elenco2[C];
for (int i = 1; i <= 5; ++i)
{
for (int k = 0; k < C; ++k)
{
*elenco1[k] = i;
}
}
for (int i = 5; i <= 9; ++i)
{
for (int k = 0; k < C; ++k)
{
*elenco1[k] = i;
}
}
stampa = sort_array(elenco1, elenco2);
list<int>::iterator inizio = stampa.begin();
list<int>::iterator fine = stampa.end();
for (inizio; inizio != fine; ++inizio)
{
cout << *inizio << " ";
}
cout << endl;
getchar();
return 0;
}
u are right, infact Я попытался сделать это в 1-й раз ... но ошибка одна и та же – user3464250
Также обратите внимание: 'int elenco [C]' в аргументе функции совпадает с 'int * elenco 'и' C' не имеет никакого эффекта. –
Опасайтесь, что 'erase' не гарантированно вернет действительный итератор на всех платформах. Фактически, 'erase' ничего не возвращает в Solaris и AIX. – gastush