首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

STL中multimap的insert错误,该怎么

2012-03-31 
STL中multimap的insert异常,该如何?typedefstructWORDID{stringsWordunsignedintuiId}WordIdWordIdWord

STL中multimap的insert异常,该如何?
typedef   struct   WORDID
{
        string               sWord;
        unsigned   int   uiId;
}   WordId;

WordIdWordIdTemp;
typedef   multimap <WordId,   PortfolioItem,   m_less <WordId>   >   PortfolioMap;
typedef   multimap <WordId,   PortfolioItem,   m_less <WordId>   > ::value_type   PVT;
typedef   multimap <WordId,   PortfolioItem,   m_less <WordId>   > ::iterator   PITOR;

WordIdTemp.sWord                             =   ditor-> sWord;
WordIdTemp.uiId                               =   ditor-> uiId;
PortfolioItemTemp.uiId                 =   ditor-> uiId;
PortfolioItemTemp.sWord               =   ditor-> sWord;
PortfolioItemTemp.iFrequency     =   ditor-> iFrequency;
PortfolioItemTemp.sFolderName   =   fitor-> sFolderName;
PortfolioTemp.insert(PVT(WordIdTemp,   PortfolioItemTemp));   //   error

我程序用10000篇文章测试时没问题,Boss说让我测一下程序最多能支持多少篇文章,我就搞了20000。结果程序在error处出现异常。请问这是什么原因?
内存应该是够用的(4G用了3.x个G)。

我想进行一下异常处理,但是不知道insert失败返回的是什么,该如何判断?

谢谢!!!

[解决办法]
windows程序每个程序最多就可以用2G,再多就内存分配失败了。
用try...catch,看effective C++关于内存分配失败时例子。

热点排行