例如,我有一个已知sizeof(A)和sizeof(B)的std :: map,而map里面有N个条目.你会如何估计它的内存使用量?我会说它就像是
(sizeof(A) + sizeof(B)) * N * factor
Run Code Online (Sandbox Code Playgroud)
但是因素是什么?可能不同的公式?
也许要求上限更容易?
我面临着std :: map的问题。出于未知原因,有时插入映射会导致“分配错误”异常。
以下是我用于插入地图的函数。
BOOL Add2WaitList(Object<LPVOID> *newObj)
{
try
{
_set_se_translator( trans_func );
m_syncWQ.Lock();
if (m_waitingQueue.count(newObj->uid)>0)
{
m_syncWQ.Unlock();
return FALSE;
}
m_waitingQueue[newObj->uid] = *newObj; <-- failing here
m_syncWQ.Unlock();
return TRUE;
}
catch(std::exception &ex){
...
}
catch(SE_Exception &e){
...
}
catch(...){
...
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我如何解决吗?
注意:我无法确定重现它的步骤。
提前THX!
添加有关对象和地图的详细信息:
template <typename T>
struct Object{
public:
void Kill()
{
if (response!=NULL)
delete response;
if (object!=NULL)
delete object;
}
enum objType;
std::string uid;
enum status;
double p;
enum execType;
T object;
LPVOID response;
}; …Run Code Online (Sandbox Code Playgroud)