首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

stl如何避免创建和销毁

2013-07-04 
stl怎么避免创建和销毁我用vector或者list储存一个类的数据,然后我遍历这个list,查找我要的实例,但是我想

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());

热点排行