relocate()
ブースト マルチインデックス コンテナーの意味は何ですか?
ブーストのドキュメントからマニュアルを読みましたが、簡単な例を見て、再配置機能を使用する場合と使用しない場合の違いを確認したいと思います。ウェブ上の例は単純ではありませんが....
relocate()
ブースト マルチインデックス コンテナーの意味は何ですか?
ブーストのドキュメントからマニュアルを読みましたが、簡単な例を見て、再配置機能を使用する場合と使用しない場合の違いを確認したいと思います。ウェブ上の例は単純ではありませんが....
順序付けられたインデックス内のアイテムを再配置 (移動) するだけです。
#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
}