私はBOOSTライブラリからinterval_mapを使用しています。boost_interfaceに演算子[]または.at()メソッドがありますか?
cout << populations[1006313]; // 1611,1653
または
:私のような何かを期待する:typedef set<int> Tpopulations;
interval_map<int, Tpopulations> populations;
は今、私はいくつかの番号にマッピングされているものを知りたい私は集団
[1006311,1006353) 1611,1653,
[1006353,1006432) 1031,1611,1653,
[1006432,1006469] 1031,1387,1523,1611,1653,
(1006469,1006484] 1031,1387,1611,1653,
(1006484,1006496] 1031,1387,1611,
(1006496,1006506] 1031,1611,
(1006506,1006547] 1031,
でこれを持っていると言います
cout << populations.at(1006313); // 1611,1653
しかし、私はそのような方法を見つけることはできないようです。
本当に、インターバルマップを「ウィンドウ」として定義して交差を行う必要がありますか?ような何か:
interval_map<int, Tpopulations> window;
set<int>empty_set;
window +=(make_pair(1006313,empty_set));
cout << populations & window
が真剣に誰も答えていないO(ログ(N))の最高の期待される性能を提供しますか?してください、私は本当にいくつかの答えを使用することができます: -/ – user2848463