9 #ifndef ThePEG_Containers_H
10 #define ThePEG_Containers_H
25 #include "ThePEG/Utilities/UnitIO.h"
178 template <
typename T,
typename U>
179 vector<T> & operator<<(vector<T> & tv,
const U & u) {
191 template <
typename T,
typename U>
205 template <
typename T,
typename U>
206 stack<T> & operator<<(stack<T> & ts,
const U & u) {
218 template <
typename T,
typename U>
232 template <
typename T,
typename U>
233 deque<T> & operator<<(deque<T> & td,
const U & u) {
245 template <
typename T,
typename U>
259 template <
typename T,
typename U>
260 set<T> & operator<<(set<T> & ts,
const U & u) {
274 template <
typename OStream,
typename T,
typename Alloc,
typename UT>
275 void ounitstream(OStream & os,
const vector<T,Alloc> & v, UT & u) {
277 for (
typename vector<T,Alloc>::const_iterator i = v.begin();
288 template <
typename IStream,
typename T,
typename Alloc,
typename UT>
290 typename vector<T,Alloc>::size_type l;
293 for (
typename vector<T,Alloc>::iterator i = v.begin(); i != v.end(); ++i )
303 template <
typename OStream,
typename T,
typename CMP,
typename A,
typename UT>
306 for (
typename set<T,CMP,A>::const_iterator i = s.begin(); i != s.end(); ++i )
316 template <
typename IStream,
typename T,
typename CMP,
typename A,
typename UT>
319 typename set<T,CMP,A>::size_type l;
335 template <
typename OStream,
typename K,
typename T,
336 typename CMP,
typename A,
typename UT>
337 void ounitstream(OStream & os,
const map<K,T,CMP,A> & m, UT & u) {
339 for (
typename map<K,T,CMP,A>::const_iterator i = m.begin();
341 os << i->first <<
ounit(i->second, u);
351 template <
typename IStream,
typename K,
typename T,
352 typename CMP,
typename A,
typename UT>
355 typename map<K,T,CMP,A>::size_type l;
360 is >> k >>
iunit(t, u);