Boost 增强重定位功能,效果如何?

Boost 增强重定位功能,效果如何?,boost,boost-multi-index,Boost,Boost Multi Index,在boost多索引容器中,relocate()意味着什么 我已经阅读了boost文档中的手册,但我想看一个简单的例子,看看使用和不使用重新定位功能的区别。web上的示例并不简单,但它只是在顺序索引中重新定位(移动)项: #include <boost/multi_index_container.hpp> #include <boost/multi_index/sequenced_index.hpp> #include <iostream> using nam

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

我已经阅读了boost文档中的手册,但我想看一个简单的例子,看看使用和不使用重新定位功能的区别。web上的示例并不简单,但它只是在顺序索引中重新定位(移动)项:

#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
} 
#包括
#包括
#包括
使用名称空间boost::multi_索引;
typedef多索引容器<
int,
索引
>Ints;
int main()
{ 
Ints Ints;
insert(ints.end(),1);
insert(ints.end(),2);
insert(ints.end(),3);
insert(ints.end(),4);
std::for_each(ints.begin()、ints.end()、[&](inti){std::cout