亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 2076 | 回復(fù): 4
打印 上一主題 下一主題

[C++] 誰(shuí)來(lái)幫我看看這個(gè)map哪里用的有問(wèn)題? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2014-12-05 12:46 |只看該作者 |倒序?yàn)g覽
BOOLEAN CTermInst:oSaveNode(SavedNode *snode, char *key)
{
  CSNMap::iterator it = m_snMap.find(key);
  if(it != m_snMap.end())
  {
    LOG_ER(HDBG(), "TERM %s: !!! tid=%s exist, can't saved !!!", m_usrNum.num, key);
    return FALSE;
  }

  printf("--DoSaveNode-- tid=%s\n", key);
  m_snMap[key] = snode;


  it = m_snMap.find(key);
  if(it != m_snMap.end())
  {
    printf("--find ok-- tid=%s\n", key);
  }

  m_snMap["123"] = snode;

  return TRUE;
}


BOOLEAN CTermInst:reprocessMessage( AppMsgHead* pMsgHd, FSMST* fsmState )
{
  BindContext_T *pBindContext = (BindContext_T*)(pMsgHd+1);
  STN  *pStn  = &pMsgHd->stn;
  char *pBody = (char *)(pBindContext+1);
  int   nBody = pMsgHd->fsmHead.nMsgLen - sizeof(AppMsgHead) - sizeof(BindContext_T);
  
  nBody -= 1;
  pBody[nBody] = 0;
  BOOLEAN ret  = TRUE;
  pMsgHd->fsmHead.nMsgLen -= 1;

  printf("111111111111\n";

  if(pMsgHd->stn.tsOp == TRANS_CLOSE) // E_ACK
  {
    printf("1111111111111-----\n";
    printf("----- tid=%s\n", pStn->TransID.tid);



    CSNMap::iterator it=m_snMap.find(pStn->TransID.tid);
    if(it != m_snMap.end())
    {
      printf("2222222222222\n";

      SavedNode *pSNode = (*it).second;
      if(pSNode->rack == RACK_DROP)
        ret = FALSE;
      DoRemoveNode(pSNode, FALSE);
      m_snMap.erase(it);
    }


    else//*********************
    {
      CSNMap::iterator it=m_snMap.find("123";
      if(it != m_snMap.end())
      {
        printf("fuckkkk  key='123' ok size=%d\n", m_snMap.size());
      }

      printf("fuckkkkkkkkkkkkkkkkkkkkkkkkkk size=%d\n", m_snMap.size());

      it=m_snMap.begin();
      for(; it!=m_snMap.end(); it++)
      {
        SavedNode *pSNode = (*it).second;
        printf("cccccccc: tid=%s  map-tid=%s\n", pStn->TransID.tid, pSNode->sndStn.TransID.tid);
        if(strcmp(pStn->TransID.tid, pSNode->sndStn.TransID.tid) == 0 )
        {
          printf("--- stl tid=%s\n", pStn->TransID.tid);
        }
      }
    }
  }

  return ret;
}

說(shuō)明:
  先調(diào)用DoSaveNode,收到消息后調(diào)PreprocessMessage,
  癥狀是DoSaveNode 里設(shè)置的 m_snMap[key] = snode,在后面的PreprocessMessage查找不到

map定義:
  typedef map<char*, SavedNode*> CSNMap;
  CSNMap m_snMap;

如下是運(yùn)行輸出:

--DoSaveNode-- tid=10073982
--find ok-- tid=10073982
19:49:51: <ImApp><4> From IMM (56):  getstate$10073982$test_17$USER=test_18$STATE=0$ACK=200$$
19:49:51: <ImApp><4> IM Message: getstate 10073982 test_17 BODY = 'USER=test_18$STATE=0$ACK=200$$'
19:49:51: <ImApp><4> PostPackage: sigCode=1011, len=39
111111111111
1111111111111-----
----- tid=10073982
fuckkkk  key='123' ok size=2
fuckkkkkkkkkkkkkkkkkkkkkkkkkk size=2
cccccccc: tid=10073982  map-tid=10073982
caonima stl tid=10073982
cccccccc: tid=10073982  map-tid=10073982
--- stl tid=10073982

論壇徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52雙子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午馬
日期:2013-10-18 21:43:38
2 [報(bào)告]
發(fā)表于 2014-12-05 13:17 |只看該作者
map<char*, SavedNode*> CSNMap; 這樣的定義,key是直接指針比較。搞不明白就用string做key吧

論壇徽章:
1
雙子座
日期:2013-11-14 17:43:24
3 [報(bào)告]
發(fā)表于 2014-12-05 13:17 |只看該作者
下列的定義:
typedef map<char*, SavedNode*> CSNMap;

我猜你的本意是通過(guò)字符串搜索SavedNode? 如果是這樣的話,把上述的定義修改為:
typedef map<string, SavedNode*> CSNMap.

你原來(lái)的定義中,key值實(shí)際上是保存字符串的內(nèi)存地址,而不是字符串本身。

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2014-12-05 14:06 |只看該作者
star_in_sky 發(fā)表于 2014-12-05 13:17
下列的定義:
typedef map CSNMap;


太感謝了。整了1上午,沒(méi)想到是這問(wèn)題

求職 : 機(jī)器學(xué)習(xí)
論壇徽章:
79
2015年亞洲杯紀(jì)念徽章
日期:2015-05-06 19:18:572015七夕節(jié)徽章
日期:2015-08-21 11:06:172015亞冠之阿爾納斯?fàn)?日期:2015-09-07 09:30:232015亞冠之薩濟(jì)拖拉機(jī)
日期:2015-10-21 08:26:3915-16賽季CBA聯(lián)賽之浙江
日期:2015-12-30 09:59:1815-16賽季CBA聯(lián)賽之浙江
日期:2016-01-10 12:35:21技術(shù)圖書(shū)徽章
日期:2016-01-15 11:07:2015-16賽季CBA聯(lián)賽之新疆
日期:2016-02-24 13:46:0215-16賽季CBA聯(lián)賽之吉林
日期:2016-06-26 01:07:172015-2016NBA季后賽紀(jì)念章
日期:2016-06-28 17:44:45黑曼巴
日期:2016-06-28 17:44:4515-16賽季CBA聯(lián)賽之浙江
日期:2017-07-18 13:41:54
5 [報(bào)告]
發(fā)表于 2014-12-05 14:26 |只看該作者
高手,絕對(duì)是高手!回復(fù) 3# star_in_sky


   
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP