Вы можете использовать std::set_difference
для этого:
std::vector<int> diff;
std::set_difference(MyList.begin(), MyList.end(),
MyListSub.begin(), MyListSub.end(),
std::back_inserter(diff));
Как указывает @Jan, векторы должны быть отсортированы. Если это не так, используйте std::sort
для их сортировки:
std::sort(MyList.begin(), MyList.end());
В качестве альтернативы вы можете сначала сохранить свои элементы в std::set
, поэтому они уже будут отсортированы.