独自のデータ構造の重複した要素を削除しようと思い
下のコードを書きましたがコンパイルエラーがでて
コンパイルできません
STL内でエラーが起きてるようで手が出ません
どう対処すればいいでしょうか?
#include <iostream> #include <vector> #include <algorithm> using namespace std; typedef struct { char name[12]; int left; int right; } tLeaf; int main() { vector<tLeaf> vLeaf; tLeaf leaf; int i; for( i=0; i<10; i++ ) { strcpy( leaf.name, "leaf" ); leaf.left = -1; leaf.right = -1; vLeaf.push_back( leaf ); } vector<tLeaf>::iterator p; p = unique( vLeaf.begin(), vLeaf.end() ); return 0; }
コンパイルエラーの内容です
c:\program files\microsoft visual studio\vc98\include\algorithm(57) : error C2784: 'bool __cdecl std::operator ==(const class std::istream_iterator<_U,_E,_Tr> &,const class std::istream_iterator<_U,_E,_Tr> &)' : 'const class std::istream_iterator<_U
,_E,_Tr> & 用のテンプレート引数を 'tLeaf' から減少できませんでした。
c:\program files\microsoft visual studio\vc98\include\algorithm(322) : コンパイルされたクラスのテンプレートのインスタンス化 'tLeaf *__cdecl std::adjacent_find(tLeaf *,tLeaf *)' の参照を確認してください
c:\program files\microsoft visual studio\vc98\include\algorithm(57) : error C2784: 'bool __cdecl std::operator ==(const class std::reverse_bidirectional_iterator<_BI,_Ty,_Rt,_Pt,_D> &,const class std::reverse_bidirectional_iterator<_BI,_Ty,_Rt,_Pt,_
D> &)' : 'const class std::reverse_bidirectional_iterator<_BI,_Ty,_Rt,_Pt,_D> & 用のテンプレート引数を 'tLeaf' から減少できませんでした。
c:\program files\microsoft visual studio\vc98\include\algorithm(322) : コンパイルされたクラスのテンプレートのインスタンス化 'tLeaf *__cdecl std::adjacent_find(tLeaf *,tLeaf *)' の参照を確認してください
c:\program files\microsoft visual studio\vc98\include\algorithm(57) : error C2784: 'bool __cdecl std::operator ==(const class std::vector<_Ty,_A> &,const class std::vector<_Ty,_A> &)' : 'const class std::vector<_Ty,_A> & 用のテンプレート引数を 'tLeaf' か
ら減少できませんでした。
c:\program files\microsoft visual studio\vc98\include\algorithm(322) : コンパイルされたクラスのテンプレートのインスタンス化 'tLeaf *__cdecl std::adjacent_find(tLeaf *,tLeaf *)' の参照を確認してください
c:\program files\microsoft visual studio\vc98\include\algorithm(57) : error C2784: 'bool __cdecl std::operator ==(const class std::allocator<_Ty> &,const class std::allocator<_U> &)' : 'const class std::allocator<_Ty> & 用のテンプレート引数を 'tLeaf' から
減少できませんでした。
c:\program files\microsoft visual studio\vc98\include\algorithm(322) : コンパイルされたクラスのテンプレートのインスタンス化 'tLeaf *__cdecl std::adjacent_find(tLeaf *,tLeaf *)' の参照を確認してください
c:\program files\microsoft visual studio\vc98\include\algorithm(57) : error C2784: 'bool __cdecl std::operator ==(const class std::istreambuf_iterator<_E,_Tr> &,const class std::istreambuf_iterator<_E,_Tr> &)' : 'const class std::istreambuf_iterator
<_E,_Tr> & 用のテンプレート引数を 'tLeaf' から減少できませんでした。
c:\program files\microsoft visual studio\vc98\include\algorithm(322) : コンパイルされたクラスのテンプレートのインスタンス化 'tLeaf *__cdecl std::adjacent_find(tLeaf *,tLeaf *)' の参照を確認してください
c:\program files\microsoft visual studio\vc98\include\algorithm(57) : error C2784: 'bool __cdecl std::operator ==(const class std::reverse_iterator<_RI,_Ty,_Rt,_Pt,_D> &,const class std::reverse_iterator<_RI,_Ty,_Rt,_Pt,_D> &)' : 'const class std::r
everse_iterator<_RI,_Ty,_Rt,_Pt,_D> & 用のテンプレート引数を 'tLeaf' から減少できませんでした。
c:\program files\microsoft visual studio\vc98\include\algorithm(322) : コンパイルされたクラスのテンプレートのインスタンス化 'tLeaf *__cdecl std::adjacent_find(tLeaf *,tLeaf *)' の参照を確認してください
c:\program files\microsoft visual studio\vc98\include\algorithm(57) : error C2784: 'bool __cdecl std::operator ==(const struct std::pair<_T1,_T2> &,const struct std::pair<_T1,_T2> &)' : 'const struct std::pair<_T1,_T2> & 用のテンプレート引数を 'tLeaf' か
ら減少できませんでした。
c:\program files\microsoft visual studio\vc98\include\algorithm(322) : コンパイルされたクラスのテンプレートのインスタンス化 'tLeaf *__cdecl std::adjacent_find(tLeaf *,tLeaf *)' の参照を確認してください
c:\program files\microsoft visual studio\vc98\include\algorithm(57) : error C2676: 二項演算子 '==' : 'tLeaf' は、この演算子または定義済の演算子に適切な型への変換の定義を行いません。 (新しい動作; ヘルプを参照)
c:\program files\microsoft visual studio\vc98\include\algorithm(322) : コンパイルされたクラスのテンプレートのインスタンス化 'tLeaf *__cdecl std::adjacent_find(tLeaf *,tLeaf *)' の参照を確認してください
cl.exe の実行エラー
使用コンパイラ:VC++6.0
OS:WindowsXP