Do wypełnienia większości kontenerów możemy posłużyć się metodą list_of(), w przypadku mapy będzie to metoda map_list_of(), a krotki tuple_list_of().
#include <vector> #include <list> #include <map> #include <string> #include <iostream> #include <boost/foreach.hpp> #include <boost/assign/list_of.hpp> int main() { std::vector<int> vec = boost::assign::list_of(45)(78); std::list<int> lst = boost::assign::list_of(105)(108); BOOST_FOREACH(int& value, vec) { std::cout << "Value: " << value << std::endl; } BOOST_FOREACH(int& value, lst) { std::cout << "Value: " << value << std::endl; } typedef std::map<std::string, int> map_type; map_type mp = boost::assign::map_list_of("first", 1)("second", 2); BOOST_FOREACH(const map_type::value_type& value, mp) { std::cout << "Value: " << value.first << std::endl; } return 0; }Wynik:
Value: 45 Value: 78 Value: 105 Value: 108 Value: first Value: secondBiblioteka posiada dodatkowo szereg innych przydatnych funkcji: przeciążony operator +=, który umożliwia dopisywanie się na końcu wektora, insert() dostawianie dodatkowych elementów do mapy, albo repeat(), który kilkukrotnie powtarza wstawianie danej wartości, itp.
#include <boost/assign/std/vector.hpp> // dla'operator+=()' #include <boost/assign/std/list.hpp> #include <boost/assign/list_inserter.hpp> // dla 'insert()' using namespace boost::assign; // dla wygody korzystania z += // ... vec += 5, boost::assign::repeat(3, 69), 6; lst += 8, 9; insert(mp)("aaa", 3)("bbb", 4);Wynik:
Value: 45 Value: 78 Value: 5 Value: 69 Value: 69 Value: 69 Value: 6 Value: 105 Value: 108 Value: 8 Value: 9 Value: aaa Value: bbb Value: first Value: second
Brak komentarzy:
Prześlij komentarz