VC STL vector 内存泄漏,该怎么解决

VC STL vector 内存泄漏
今天被内存泄漏整惨了。经过很纠结的测试,终于找到原因:
vector!
对,就是它。
程序里用它来保存分阶段的计算结果,当程序终止时,产生了内存泄漏

class myclass
{
...
vector<int> m_result
};

...
void myclass:function(void)
{
vector<int> result;
...//获得阶段数据
m_result.insert(m_result.end(), result.begin(), result.end());
...
}

vector 可以不显式释放内存,但这里是不行的,会有内存泄漏!想不通的举个手,我也想不通

最后用了一个变通方式:
在类的析构中

myclass::~myclass()
{
...//其他处理
vector<int>().swap(m_result);//增加这句后,就不再有内存泄漏
}


不知道大家有没有遇到这类问题,有没有更好的解决办法呢。
VC 内存泄漏 STL

------解决方案--------------------
m_result.insert(m_result.end(), result.begin(), result.end()); 
=========================================
插入的是new堆,所以要释放,但是析构函数不是这样写的。