00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00028 #ifndef _GRAPH_GLOBAL_H
00029 #define _GRAPH_GLOBAL_H
00030
00031 #include <iostream>
00032 #include <map>
00033 #include <vector>
00034 #include <set>
00035
00036 using namespace std;
00037
00038
00039 template < class T >
00040 ostream &operator<<(ostream &ostr, const vector< T > &items)
00041 {
00042
00043 typename vector< T >::const_iterator itr;
00044 for (itr = items.begin(); itr != items.end(); itr++)
00045 ostr << *itr << " ";
00046 return(ostr);
00047 }
00048
00049
00050 template <class T>
00051 ostream& operator<<(ostream& ostr, set< T > s)
00052 {
00053 typename set< T >::const_iterator itr;
00054
00055 for (itr = s.begin(); itr != s.end(); itr++)
00056 ostr << *itr << " ";
00057 return(ostr);
00058 }
00059
00060 template <class T, class U>
00061 ostream& operator<<(ostream& ostr, map< T, U > m)
00062 {
00063 typename map< T, U >::iterator itr;
00064
00065 for (itr = m.begin(); itr != m.end(); itr++)
00066 ostr << (*itr).first << " (" << (*itr).second << ") ";
00067 return(ostr);
00068 }
00069
00070
00071 typedef double MyNT;
00072
00073
00074
00075 inline bool matches_non_space(string text)
00076 {
00077 for (unsigned int i = 0; i < text.length(); i++)
00078 if (!isspace(text[i]))
00079 return(true);
00080
00081 return(false);
00082 }
00083
00084
00085
00086 #endif // _GRAPH_GLOBAL_H