00001 #ifndef MISC_STLUTIL_H
00002 #define MISC_STLUTIL_H
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00033 #include <glt/config.h>
00034
00035 #include <vector>
00036 #include <iosfwd>
00037 #include <string>
00038
00050 template<class T,class A>
00051 void shrink(std::vector<T,A> &v)
00052 {
00053 if (v.size()!=v.capacity())
00054 {
00055 std::vector<T,A> tmp;
00056 tmp.reserve(v.size());
00057 tmp.insert(tmp.begin(),v.begin(),v.end());
00058 v.swap(tmp);
00059 }
00060 }
00061
00070 template<class T,class A>
00071 std::ostream &print(std::ostream &os,const std::vector<T,A> &v,const std::string &delim = ",")
00072 {
00073 const int size = v.size();
00074 for (int i=0; i<size; i++)
00075 {
00076 if (i>0)
00077 os << delim;
00078 os << v[i];
00079 }
00080
00081 return os;
00082 }
00083
00084 #endif