程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> c++-請教一個關於vector函數的問題?

c++-請教一個關於vector函數的問題?

編輯:編程解疑
請教一個關於vector函數的問題?

std::vectorcard;
class Information
{ ...... };
Information *Search()
{
int i=1;
string tempname;
cout<<"請輸入姓名:";
cin>>tempname;
Information * temp;
temp=card.begin();
//無法從“std::_Vector_iterator<_Myvec>”轉換///為“Information *”
while(i<=card.size())
{
if((temp->Get_Name())==tempname)
{ return temp; }
temp++;
i++;
}
return NULL;
}
temp=card.begin();
//無法從“std::_Vector_iterator<_Myvec>”轉換///為“Information *”
請問如何很正

最佳回答:


begin返回的是迭代器,不能直接賦值給Information指針。
下面的循環查找邏輯也錯了,可以用下面一種寫法

 Information *temp = NULL;
std::vector<Information*>::iterator it = card.begin();
while(it < card.end())
{
    temp = *it;
    if((temp->Get_Name()) == tempname)
    {
        return temp;
    }
    ++it;
}
return NULL
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved