boost::assign是boost中一个对容器进行赋值的库,各种方法非常灵活使用。
先举一个例子:
/**
2 @author Amiber
3 @date 2012-12-15
4 **/
5
6 #include <iostream> //for std::cout,std:;endl;
7 #include <iterator> //for ostream_iterator
8 #include <algorithm> //for std::copy
9 #include <vector> //for vector
10 #include <boost/assign.hpp> //for operator +=
11 #include <boost/assert.hpp> //for BOOST_ASSERT
12 #include <boost/assign/std/vector.hpp> //for operator+ vector
13 int main(int argc,char* argv[])
14 {
15
16 using namespace boost::assign;
17 std::vector<int> vct;
18 vct +=1,2,3,4,5,6;
19
20
21 std::copy(vct.begin(),vct.end(),std::ostream_iterator<int>(std::cout," "));
22 std::cout<<std::endl;
23
24 BOOST_ASSERT(vct.size() == 6);
25 BOOST_ASSERT(vct[0] == 1);
26 BOOST_ASSERT(vct[1] == 2);
27
28 return 0;
29 }
boost::list_inserter、boost::push_back、boost::push_front的用法
/**
2 @author Amiber
3 @date 2012-12-15**/
7 #include <iostream> //for std::cout
8 #include <map> //for map
9 #include <vector> //for vector
10 #include <deque> //for deque
11 #include <set> //for set
12 #include <map> //for map
13 #include <iterator> //for ostream_iterator
14 #include <algorithm> //for std::copy
15
16 #include <boost/assign/list_inserter.hpp> //for insert
17 #include <boost/assert.hpp> // for BOOST_ASSERT
18 #include <boost/foreach.hpp> // for BOOST_FOREACH
19 #include <boost/typeof/typeof.hpp> //for BOOST_TYPEOF
20
21 int main(int argc,char* argv[])
22 {
23
24
25 /**
26 boost::assign::push_back
27 **/
28
29 std::vector<int> vct;
30
31 boost::assign::push_back(vct) (0)(1)(2);
32
33 std::copy(vct.begin(),vct.end(),std::ostream_iterator<int>(std::cout," "));
34
35 std::cout<<std::endl;