[转space]STL swap的一个妙用

std::vector<T>(v).swap(v)

作用相当于:

{
std::vector<T>   temp(v);//1
temp.swap(v);//2
}
第一句产生一个和v内容一模一样的vector只不过temp的容量是恰好满足其大小的
第二句把v和temp交换
然后temp就自动解析掉了

这样写的作用是:把v的容量缩小到最佳值

晕啊,才发现这是Effective STL 的条款17,看这里。看的书还不够多啊。

评论关闭。