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