I'm looking to get intersection of two custom vectors - v and w - and then deleting common elements from original vector - v. But somehow size of y in my case is 0 always
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
class A{
    public:
    int x;
    A(int i) { x = i; } 
    ~A() {}
    void getx() { cout << x << " "; } 
    friend ostream &operator<<(ostream &o, const A&a) {
        cout << a.x;
        return o;
    }
};
struct mycomparer {
    bool operator()(const A* a, const A* b) {
        return a->x < b->x;
    }
};
int main()
{
    vector<A*> v;
    v.push_back(new A(1));
    v.push_back(new A(2));
    v.push_back(new A(4));
    v.push_back(new A(3));
    v.push_back(new A(5));
    vector<A*> w;
    w.push_back(new A(3));
    w.push_back(new A(2));
    vector<A*> y;
    vector<A*>::iterator it, st;
    it = set_intersection(v.begin(), v.end(), w.begin(), w.end(), y.begin(), mycomparer());
    cout << " y size "  << y.size() << endl;
    if (y.size()) {
        for (st = y.begin(); st != y.end(); st++)
            v.erase(st);
    }
    for (st = v.begin(); st != v.end(); st++) {
        printf("%d ", (*st)->x);
    }
    cout << endl;
    return 0;
}
This is just a sample which I wrote and my intend is not to check for any other C++ rules.
 
     
     
    