std::removeとstd::eraseを使用してベクターから要素を削除しようとしています。インデックスはわかりませんが、値だけがわかります。ただし、機能しません。カスタム構造体の演算子に関係している可能性がありますが、修正方法がわかりません。
問題は次のコード行です。
stillAvailable.erase(remove(stillAvailable.begin(), stillAvailable.end(), previousRound[j]), stillAvailable.end());
StillAvailableのタイプはstd::vectorで、previousRound[j]のタイプはTeamです。チームは次のような構造体です。
struct Team
{
int country;
std::string name;
int positionGP;
int groupID;
};
次のエラーコードが表示されます。
League.cc: In member function `bool League::generateSchema(int, std::vector<Team, std::allocator<Team> >)':
League.cc:131: error: no match for 'operator*' in '*temp'
C:/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h: In function `_OutputIterator std::remove_copy(_InputIterator, _InputIterator, _OutputIterator, const _Tp&) [with _InputIterator = __gnu_cxx::__normal_iterator<Team*, std::vector<Team, std::allocator<Team> > >, _OutputIterator = __gnu_cxx::__normal_iterator<Team*, std::vector<Team, std::allocator<Team> > >, _Tp = Team]':
C:/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:1114: instantiated from `_ForwardIterator std::remove(_ForwardIterator, _ForwardIterator, const _Tp&) [with _ForwardIterator = __gnu_cxx::__normal_iterator<Team*, std::vector<Team, std::allocator<Team> > >, _Tp = Team]'
League.cc:145: instantiated from here
C:/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:1037: error: no match for 'operator==' in '(&__first)->__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator* [with _Iterator = Team*, _Container = std::vector<Team, std::allocator<Team> >]() == __value'
C:/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h: In function `_RandomAccessIterator std::find(_RandomAccessIterator, _RandomAccessIterator, const _Tp&, std::random_access_iterator_tag) [with _RandomAccessIterator = __gnu_cxx::__normal_iterator<Team*, std::vector<Team, std::allocator<Team> > >, _Tp = Team]':
C:/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:314: instantiated from `_InputIterator std::find(_InputIterator, _InputIterator, const _Tp&) [with _InputIterator = __gnu_cxx::__normal_iterator<Team*, std::vector<Team, std::allocator<Team> > >, _Tp = Team]'
C:/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:1112: instantiated from `_ForwardIterator std::remove(_ForwardIterator, _ForwardIterator, const _Tp&) [with _ForwardIterator = __gnu_cxx::__normal_iterator<Team*, std::vector<Team, std::allocator<Team> > >, _Tp = Team]'
League.cc:145: instantiated from here
C:/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:207: error: no match for 'operator==' in '(&__first)->__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator* [with _Iterator = Team*, _Container = std::vector<Team, std::allocator<Team> >]() == __val'
C:/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:211: error: no match for 'operator==' in '(&__first)->__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator* [with _Iterator = Team*, _Container = std::vector<Team, std::allocator<Team> >]() == __val'
C:/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:215: error: no match for 'operator==' in '(&__first)->__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator* [with _Iterator = Team*, _Container = std::vector<Team, std::allocator<Team> >]() == __val'
C:/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:219: error: no match for 'operator==' in '(&__first)->__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator* [with _Iterator = Team*, _Container = std::vector<Team, std::allocator<Team> >]() == __val'
C:/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:227: error: no match for 'operator==' in '(&__first)->__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator* [with _Iterator = Team*, _Container = std::vector<Team, std::allocator<Team> >]() == __val'
C:/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:231: error: no match for 'operator==' in '(&__first)->__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator* [with _Iterator = Team*, _Container = std::vector<Team, std::allocator<Team> >]() == __val'
C:/Dev-Cpp/include/c++/3.4.2/bits/stl_algo.h:235: error: no match for 'operator==' in '(&__first)->__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator* [with _Iterator = Team*, _Container = std::vector<Team, std::allocator<Team> >]() == __val'
どんな助けでも大歓迎です!前もって感謝します!