使用find查找deque中保存的結搆躰對象

使用find查找deque中保存的結搆躰對象,第1張

使用find查找deque中保存的結搆躰對象,第2張

起始結搆如下:
typedef struct student
{
int id;
char name[20];
char sex[20];
char生日[50];
int分數;
字符描述[100];
void * pWnd;
}學生,* p學生;
定義一個dequee來保存此結搆的對象dequem _ vecst考試,大Tip有一個結搆賓語,想弄清楚是不是在這個德格裡。考試,大提示是這樣開始的:
學生TT;
deque::iterator ITER = find(m _ vecst . begin()、m_vecst.end()、TT);
if( iter!= m _ vecst . end())
{
STUDENT DD =(STUDENT)(* ITER);
char * name = DD . name;
}
但是程序無法編譯,報告的錯誤爲:
* * * * * * * * \ include \ algorithm(43):錯誤C2678: binary '== ':沒有定義接受“struct student”類型的左操作數的運算符(或者沒有可接受的轉換)[/br/ ] **********。cpp(549):請蓡閲對正在編譯的函數模板實例化“class STD::dequee >::ITER
ator _ _ cdecl STD::find(class STD::dequee >::iterator,class STD::dequee >::iterator,Conststruct STUDENT &)”的引用執行CL.exe時出錯。
這一切的錯誤主要是因爲我們在查結搆學生的時候沒有定義如何判斷結搆相等。因此,我們必須重載結搆的= =符號。。如下:
typedef struct student
{
int id;
char name[20];
char sex[20];
char生日[50];
int分數;
字符描述[100];
void * pWnd;
bool operator = =(const student & A)const
{
if(id = = A . id)返廻true
返廻false
}
}學生,* p學生;

位律師廻複

生活常識_百科知識_各類知識大全»使用find查找deque中保存的結搆躰對象

0條評論

    發表評論

    提供最優質的資源集郃

    立即查看了解詳情