八百里加急 迭代器是否需要释放?
std::list< UserRes* >::iterator pUserRes;
for( pUserRes =pReq->m_UserResList.begin();
pUserRes !=pReq->m_UserResList.end();pUserRes++ )
{
int a=(*pUserRes)->pszId;
}
问题 :这样用完后需要对 pUserRes 释放吗?
如 释放该考虑它为空吗? ?
[解决办法]
不需要释放,它自己会正确析构。
[解决办法]
lz肯能对迭代器的理解还是有些不清楚吧,其实可以这么形象的理解(具体实现的时候,肯定不是这样子的):容器是一种数组,迭代器是遍历数组的指针,就像int a[n]; for(int p = a; p != a+n; ++p) ;一样
[解决办法]
不需要释放的!迭代器类似于指针,但是高于指针的!
[解决办法]
迭代器本身不需要,主楼 list 里面指针指向的资源倒是可能需要释放。
[解决办法]
std::list<std::unique_ptr<>> 或者 boost::ptr_list<>