好吧,這是非常難以解釋。我試圖在這裏寫一個100行解釋,看到我失敗後我試圖創建一個圖像,以更好地解釋它也失敗了http://img208.imageshack.us/img208/7383/48821020.png找到一個字符串的多個類指針
這似乎是不可能的,因爲它的複雜性非常高。在最原始的是,我需要爲字符串的每個部分分配Id。目前,我可以給ID的一個字符串,例如:
He: hey
She: Hi
He: What's up
She: Not much, you?
He: I'm fine, i'm selling a <Scale Armor> wanna buy it?
She: Next time maybe.
我可以用CString szText = GetTextAtLine(3);
因爲What's up
位於聊天的第三行函數返回What's up
。每行都有一個Id,Id是行號。每行還有一個指向名爲CItemElem
的類的指針。 CItemElem包含有關項目的所有信息。
I通過使用以下函數CItemElem *pItem = GetItemAtLineId(5)
找到指針,它將返回存儲在map<unsigned int,CItemElem*>mItemChat
處的指針,其中unsigned int
是行標識符。每當有人在聊天中聊天時,如果在聊天中輸入了一個項目,則會將新元素插入到STL貼圖中,並將其添加到行ID中。
CItemElem* CEditString::GetItemAtLineId(unsigned long uLine)
{
for(map<unsigned int,CItemElem*>::iterator it = m_mItemChat.begin(); it != m_mItemChat.end(); ++it)
{
if(uLine == it->first)
return(it->second);
}
return NULL;
}
因此,大家可以看到,我可以找到一個CItemElem
指針由行標識,但現在我的問題是我需要在字符串來定位多個項目,因爲3項最多可以在輸入的句子時間:
He: Hey guys i'm selling <Scale Boots> <Wooden Sword> <Water Helmet> cool items!
目前我一次只能在一個聊天句子中返回1個項目,因爲我可以通過行ID找到該項目。在過去的幾個小時裏我一直在烘烤我的大腦,請賜教我如何能夠在相同的句子ID返回多個項目。
非常感謝!
回報項目的載體使用
CLineElem*
? – nhahtdh 2012-07-10 03:01:17這是可能的。我不完全確定,但'map>'可能是您需要的。 –
nhahtdh
2012-07-10 03:06:05
它必須更具體,因爲當用戶將鼠標懸停在字符串的一部分上時,它必須顯示項目信息(保存在CItemElem *處)。可以用一種方式存儲多個項目,問題是找到鼠標懸停的項目是什麼 –
2012-07-10 03:06:30