Fixed 3/4th of the errors, only got this left
Breeder.cpp: In member function ‘void Breeder::ProcessNeighbourhood(const std::vector<Agent**, std::allocator<Agent**> >&)’:
Breeder.cpp:74: error: ‘AgentType’ is not a class or namespace
CandidateSolution.cpp:2:18: error: random: No such file or directory
Cupid.cpp: In member function ‘Agent** Cupid::GetEmptyCell()’:
Cupid.cpp:215: error: no matching function for call to ‘std::vector<Agent**, std::allocator<Agent**> >::erase(__gnu_cxx::__normal_iterator<Agent** const*, std::vector<Agent**, std::allocator<Agent**> > >&)’
/usr/include/c++/4.2.1/bits/vector.tcc:109: note: candidates are: typename std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::erase(__gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >) [with _Tp = Agent**, _Alloc = std::allocator<Agent**>]
/usr/include/c++/4.2.1/bits/vector.tcc:121: note: typename std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::erase(__gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >, __gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >) [with _Tp = Agent**, _Alloc = std::allocator<Agent**>]
Reaper.cpp: In member function ‘void Reaper::SelectToList(std::vector<T**, std::allocator<T**> >&, std::vector<T**, std::allocator<T**> >&, bool (*)(T**, T**), double) [with T = CandidateSolution]’:
Reaper.cpp:60: instantiated from here
Reaper.cpp:50: error: no matching function for call to ‘std::vector<CandidateSolution**, std::allocator<CandidateSolution**> >::erase(__gnu_cxx::__normal_iterator<CandidateSolution** const*, std::vector<CandidateSolution**, std::allocator<CandidateSolution**> > >&)’
/usr/include/c++/4.2.1/bits/vector.tcc:109: note: candidates are: typename std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::erase(__gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >) [with _Tp = CandidateSolution**, _Alloc = std::allocator<CandidateSolution**>]
/usr/include/c++/4.2.1/bits/vector.tcc:121: note: typename std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::erase(__gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >, __gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >) [with _Tp = CandidateSolution**, _Alloc = std::allocator<CandidateSolution**>]
Reaper.cpp: In member function ‘void Reaper::SelectToList(std::vector<T**, std::allocator<T**> >&, std::vector<T**, std::allocator<T**> >&, bool (*)(T**, T**), double) [with T = Cupid]’:
Reaper.cpp:61: instantiated from here
Reaper.cpp:50: error: no matching function for call to ‘std::vector<Cupid**, std::allocator<Cupid**> >::erase(__gnu_cxx::__normal_iterator<Cupid** const*, std::vector<Cupid**, std::allocator<Cupid**> > >&)’
/usr/include/c++/4.2.1/bits/vector.tcc:109: note: candidates are: typename std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::erase(__gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >) [with _Tp = Cupid**, _Alloc = std::allocator<Cupid**>]
/usr/include/c++/4.2.1/bits/vector.tcc:121: note: typename std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::erase(__gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >, __gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >) [with _Tp = Cupid**, _Alloc = std::allocator<Cupid**>]
Reaper.cpp: In member function ‘void Reaper::SelectToList(std::vector<T**, std::allocator<T**> >&, std::vector<T**, std::allocator<T**> >&, bool (*)(T**, T**), double) [with T = Breeder]’:
Reaper.cpp:62: instantiated from here
Reaper.cpp:50: error: no matching function for call to ‘std::vector<Breeder**, std::allocator<Breeder**> >::erase(__gnu_cxx::__normal_iterator<Breeder** const*, std::vector<Breeder**, std::allocator<Breeder**> > >&)’
/usr/include/c++/4.2.1/bits/vector.tcc:109: note: candidates are: typename std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::erase(__gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >) [with _Tp = Breeder**, _Alloc = std::allocator<Breeder**>]
/usr/include/c++/4.2.1/bits/vector.tcc:121: note: typename std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::erase(__gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >, __gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >) [with _Tp = Breeder**, _Alloc = std::allocator<Breeder**>]
Reaper.cpp: In member function ‘void Reaper::SelectToList(std::vector<T**, std::allocator<T**> >&, std::vector<T**, std::allocator<T**> >&, bool (*)(T**, T**), double) [with T = Reaper]’:
Reaper.cpp:63: instantiated from here
Reaper.cpp:50: error: no matching function for call to ‘std::vector<Reaper**, std::allocator<Reaper**> >::erase(__gnu_cxx::__normal_iterator<Reaper** const*, std::vector<Reaper**, std::allocator<Reaper**> > >&)’
/usr/include/c++/4.2.1/bits/vector.tcc:109: note: candidates are: typename std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::erase(__gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >) [with _Tp = Reaper**, _Alloc = std::allocator<Reaper**>]
/usr/include/c++/4.2.1/bits/vector.tcc:121: note: typename std::vector<_Tp, _Alloc>::iterator std::vector<_Tp, _Alloc>::erase(__gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >, __gnu_cxx::__normal_iterator<typename std::_Vector_base<_Tp, _Alloc>::_Tp_alloc_type::pointer, std::vector<_Tp, _Alloc> >) [with _Tp = Reaper**, _Alloc = std::allocator<Reaper**>]