读书人

stl如何避免创建和销毁

发布时间: 2013-07-04 11:45:28 作者: rapoo

stl怎么避免创建和销毁
我用vector或者list储存一个类的数据,然后我遍历这个list,查找我要的实例,但是我想要直接将这个实例重新包装后插到最前面,而不是销毁后再创建一个,这个应该怎么做。
[解决办法]
使用list可以做到这个要求。
首先你要保存原对象在list中的迭代器
然后你要获得这个迭代器的下一个迭代器(拷贝一个然后++)
最后调用list::splice。
下面的例子会把list中最后一个string移到首部,而不会创建string的副本:


list<string> strs;
//向strs中添加一些内容
list<string>::iterator it = strs.end();
-- it;//获得最后一个元素的迭代器
//它的下一个就是strs.end(),所以就不去计算了。
strs.splice(strs.begin(), strs, it, strs.end());

读书人网 >C++

热点推荐