一般只用包含
multimap,, map,,priority_queue,queue,, multiset,,set,stack,, boost::array,,boost::multi_index_container,Boost.Pointer Container第一種方式通過重載 +=
vector<int> v;
v += 1,2,3,4,5,6,7,8,9; 第二種方式是重載(),,但是必須通過 insert,, push_front,push_back,,push 這幾個函數(shù)構(gòu)造一個 list_inserter 的對象,,如
typedef pair< string,string > str_pair;
deque<str_pair> deq; push_front( deq )( "foo", "bar")( "boo", "far" ); 第三種是利用 list_of() 或者是 list_of(const &T) 初始化 const 容器,如
如果是 stack,,queue,,prior_queue 這些
to_adapter() 幫助編譯器識別,如:而 map_list_of() 則是為了便于使用 map,,如:
map<int,int> next = map_list_of(1,2)(2,3)(3,4)(4,5)(5,6);
next = list_of< pair<int,int> >(6,7)(7,8)(8,9); // 注意這時 next 只有 3 個元數(shù),。 tuple_list_of() 則是為了便于使用 tuple,如:typedef boost::tuple<int,std::string,int> tuple;
vector<tuple> v = tuple_list_of( 1, "foo", 2 )( 3, "bar", 4 ); 如果有多個重復(fù)的元素,,則可以使用 repeat() 和 repeat_fun() 這兩個函數(shù),,如
而 repeat_fun() 則利用仿函數(shù)產(chǎn)生元素
template< class T > struct next { }; { } |
|