定义一个变量 map<int,CString>结果报错error C2143: syntax error : missing ';' before '<'
error C2501: 'map' : missing storage-class or type specifiers
error C2143: syntax error : missing ';' before '<'什么原因呢?

解决方案 »

  1.   

    大哥,你的MAP 要有个名字啊,类似这样的 map<int, int> amap;
      

  2.   

    #include <map>typedef map<CString , CString > mapRegion;mapRegion mRegion;我的map这么写的没问题啊
      

  3.   

    加了
    using namespace std;
    吗?
      

  4.   

    要加using namespace std;或者用std::map
      

  5.   

    #include <map>std::map<DWORD, BOOL> m_mapState;m_mapState.clear();BOOL CSMSChargeMgr::GetDomainSMSState(int nDomainId)
    {
    std::map<DWORD, BOOL>::iterator iter = m_mapState.find(nDomainId);
    if (iter != m_mapState.end() && iter->second)
    return iter->second; 
    return FALSE;
    }
    BOOL CSMSChargeMgr::SetDomainSMSState(int nDomainId, int nFlag)
    {
    std::map<DWORD, BOOL>::iterator iter = m_mapState.find(nDomainId);
    if (iter != m_mapState.end())
    m_mapState.erase(iter);  m_mapState.insert(std::map<DWORD, BOOL>::value_type(nDomainId,nFlag & SK_DOMAIN_FLAG_SUPPORT_SMS));
    return TRUE;
    }
      

  6.   

    map使用比较方便,怎会报错?笔误?把你使用的map放上来看看吧
      

  7.   


    // map::begin/end
    #include <iostream>
    #include <map>
    using namespace std;int main ()
    {
      map<char,int> mymap;
      map<char,int>::iterator it;  mymap['b'] = 100;
      mymap['a'] = 200;
      mymap['c'] = 300;  // show content:
      for ( it=mymap.begin() ; it != mymap.end(); it++ )
        cout << (*it).first << " => " << (*it).second << endl;  return 0;
    }
      

  8.   

    1、#include <map>
    2、using namespace std;