[STL ] 有關map的使用...
我是用STL的新手...
爬過文了但是還是找不到答案
class cell
{
public:
string name;
cell* parent;
vector<cell*> son;
cell(string myname);
cell(string myname, string parent_name);
cell()
};
class c_root
{
public:
vector<cell*> son; //記錄全部我們自己new出來的節點
map<string, cell*> m; //也是要記錄我們自己new出來的全部節點,但是要快速存取
};
c_root* root;
cell* myfind(const char* inn) //花費O(n)
{
int s= root->son.size();
cell* ret=NULL;
for (int i=0; i<s; i++)
{
if (strcmp(root->son.at(i)->name.c_str(), inn)==0)
{
ret= root->son.at(i);
break;
}
}
retrun ret;
}
cell* myfind2(const char* inn) //我想要讓它花費O(1)
{
map<string, cell*>::iterator it= root->m.find(inn);
if (it != root->m.end())
return (????????);
else
retrun NULL;
}
????的部份,我試過
return(it->second); ==> error C2784一大堆
return(*it->second); ==> error C2440;無法由cell轉換為cell*
return &(*it->second); ==>error C2784一大堆
幫我看看吧 ..
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.40.122.146
推
06/21 14:56, , 1F
06/21 14:56, 1F
推
06/21 15:08, , 2F
06/21 15:08, 2F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章