1 #ifndef _misc_h_ 2 #define _misc_h_ 3 4 #include <string> 5 #include <iostream> 6 7 #include <list> 8 9 using namespace std; 10 11 string indent(unsigned); 12 string int_to_str(int); 13 14 bool str2int(const string&, int&); 15 bool str2float(const string&, float&); 16 17 bool is_validip(const string&); 18 void skiptillendofline(istream&); 19 20 21 template <class T> contains(list<T> & l,const T & t)22bool contains(list<T>& l, const T& t) 23 { 24 for(typename list<T>::iterator li = l.begin(); li != l.end(); li++) 25 if((*li) == t) 26 return true; 27 return false; 28 } 29 30 template <class T> intersect(list<T> & l1,list<T> & l2)31list<T> intersect(list<T>& l1, list<T>& l2) 32 { 33 list<T> result; 34 for(typename list<T>::iterator li = l1.begin(); li != l1.end(); li++) 35 if(contains(l2, *li)) 36 result.push_back(*li); 37 38 result.sort(); 39 result.unique(); 40 41 return result; 42 } 43 44 #endif 45