Albor » 20 окт 2008, 22:55
А если использовать STL, то будет понятнее и проще
Код: Выделить всё
#include"iostream"
#include "algorithm"
using namespace std;
void main()
{
const int len_a=5,len_b=7; //размерность массивов
int mas_a [len_a]={1,2,5,4,6};
int mas_b [len_b]={5,6,3,7,2,10,12};
//для работы алгоритма set_difference, массивы должны быть отсортированы
sort(mas_a,mas_a+len_a);
sort(mas_b,mas_b+len_b);
int mas_result[len_a];//результирующий массив,
// set_difference поместит в результирующий массив mas_result все элементы mas_a, не встречающиеся в mas_b
// и вернёт указатель на ячейку за последним значением в результирующем массиве.
// поскольку mas_result будет отсортирован, то нужное нам значение будет в предыдущей ячейке
cout<<"Result: "<<*(set_difference(mas_a, mas_a+len_a,mas_b,mas_b+len_b,mas_result)-1)<<endl;
}
А если использовать STL, то будет понятнее и проще :)
[code]
#include"iostream"
#include "algorithm"
using namespace std;
void main()
{
const int len_a=5,len_b=7; //размерность массивов
int mas_a [len_a]={1,2,5,4,6};
int mas_b [len_b]={5,6,3,7,2,10,12};
//для работы алгоритма set_difference, массивы должны быть отсортированы
sort(mas_a,mas_a+len_a);
sort(mas_b,mas_b+len_b);
int mas_result[len_a];//результирующий массив,
// set_difference поместит в результирующий массив mas_result все элементы mas_a, не встречающиеся в mas_b
// и вернёт указатель на ячейку за последним значением в результирующем массиве.
// поскольку mas_result будет отсортирован, то нужное нам значение будет в предыдущей ячейке
cout<<"Result: "<<*(set_difference(mas_a, mas_a+len_a,mas_b,mas_b+len_b,mas_result)-1)<<endl;
}
[/code]