提升重定位功能,有什么影响?

时间:2013-05-25 10:27:44

标签: boost boost-multi-index

relocate()在boost多索引容器中意味着什么?

我已阅读过boost文档中的手册,但我想看一个简单的示例,看看使用不使用重定位功能的区别。网上的例子并不简单......

1 个答案:

答案 0 :(得分:1)

它只是在一个有序索引中重新定位(移动)项目:

#include <boost/multi_index_container.hpp>
#include <boost/multi_index/sequenced_index.hpp>
#include <iostream>

using namespace boost::multi_index;

typedef multi_index_container<
  int,
  indexed_by<sequenced<> > 
> Ints;


int main() 
{ 
  Ints ints;
  ints.insert(ints.end(), 1);
  ints.insert(ints.end(), 2);
  ints.insert(ints.end(), 3);
  ints.insert(ints.end(), 4);
  std::for_each (ints.begin(), ints.end(), [&](int i) { std::cout << i << std::endl; }); // 1, 2, 3, 4

  auto i = find(ints.begin(), ints.end(), 2);
  ints.relocate(ints.end(), i);
  std::for_each (ints.begin(), ints.end(), [&](int i) { std::cout << i << std::endl; }); // 1, 3, 4, 2
}