Sto usando intervallo_map dalla libreria BOOST.Il boost interval_map ha il metodo operator [] o .at()?
typedef set<int> Tpopulations;
interval_map<int, Tpopulations> populations;
Dire che ho questo popolazioni
[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,
Ora voglio scoprire che cosa è mappato su qualche numero: mi sarei aspettato qualcosa di simile:
cout << populations[1006313]; // 1611,1653
o
cout << populations.at(1006313); // 1611,1653
Tuttavia non sembra di trovare alcun metodo del genere.
Devo davvero definire una mappa di intervalli come "finestra" e fare l'intersezione? Qualcosa di simile:
interval_map<int, Tpopulations> window;
set<int>empty_set;
window +=(make_pair(1006313,empty_set));
cout << populations & window
Scherzi a parte nessuno ha rispondere? Per favore, potrei davvero usare qualche risposta: -/ – user2848463