现在的位置: 首页 > 综合 > 正文

关于map vector 多层嵌套,最后内存的释放方式

2018年10月15日 ⁄ 综合 ⁄ 共 984字 ⁄ 字号 评论关闭
if (m_pMapVectorSymbol != NULL)
	{
		for (TMapVectorSymbol::TMapIterator iter = m_pMapVectorSymbol->m_pMapParameter->begin(); iter != m_pMapVectorSymbol->m_pMapParameter->end(); ++iter)
		{
			TVectorSymbol *pVectorSymbol = iter->second;
			if (pVectorSymbol != NULL)
			{
				for (TVectorSymbol::iterator iter1 = pVectorSymbol->begin(); iter1 != pVectorSymbol->end(); ++iter1)
				{
					CMapSingleParameter *pMapSingleParameter = *iter1;
					SAFE_DELETE(pMapSingleParameter);
				}
				SAFE_DELETE(pVectorSymbol);
			}
		}
		SAFE_DELETE(m_pMapVectorSymbol);
	}
	if (m_pLatelyVectorSymbol != NULL)
	{
		for (TVectorSymbol::iterator iter = m_pLatelyVectorSymbol->begin(); iter != m_pLatelyVectorSymbol->end(); ++iter)
		{
			CMapSingleParameter *pMapSingleParameter = *iter;
			SAFE_DELETE(pMapSingleParameter);
		}
		SAFE_DELETE(m_pLatelyVectorSymbol);
	}

其中

m_pMapVectorSymbol  的原型是:TMapVectorSymbol *m_pMapVectorSymbol;
typedef vector<CMapSingleParameter*> TVectorSymbol;
typedef MapParameter<xstring, TVectorSymbol*> TMapVectorSymbol;

<pre name="code" class="cpp">m_pLatelyVectorSymbol 的原型是:TVectorSymbol *m_pLatelyVectorSymbol;


抱歉!评论已关闭.