src/work/deba/iterator_test.cpp
changeset 1365 c280de819a73
parent 1364 ee5959aa4410
child 1366 d00b85f8be45
     1.1 --- a/src/work/deba/iterator_test.cpp	Sun Apr 17 18:57:22 2005 +0000
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,115 +0,0 @@
     1.4 -#include <iostream>
     1.5 -#include <algorithm>
     1.6 -#include <iterator>
     1.7 -#include <functional>
     1.8 -#include <lemon/list_graph.h>
     1.9 -#include <lemon/map_iterator.h>
    1.10 -#include <lemon/graph_reader.h>
    1.11 -#include <lemon/maps.h>
    1.12 -
    1.13 -using namespace std;
    1.14 -using namespace lemon;
    1.15 -
    1.16 -template <typename F, typename G>
    1.17 -struct unary_compose {
    1.18 -  typedef typename G::argument_type argument_type;
    1.19 -  typedef typename F::result_type result_type;
    1.20 -  
    1.21 -  unary_compose(const F& _f, const G& _g) : f(_f), g(_g) {}
    1.22 -
    1.23 -  result_type operator()(const argument_type& x) {
    1.24 -    return f(g(x));
    1.25 -  }
    1.26 -
    1.27 -private:
    1.28 -  F f;
    1.29 -  G g;
    1.30 -};
    1.31 -
    1.32 -template <typename F, typename G>
    1.33 -unary_compose<F, G> compose1(const F& f, const G& g) {
    1.34 -  return unary_compose<F, G>(f, g);
    1.35 -}
    1.36 -
    1.37 -
    1.38 -
    1.39 -
    1.40 -template <typename T>
    1.41 -struct Second {
    1.42 -  typedef T argument_type;
    1.43 -  typedef typename T::second_type result_type;
    1.44 -
    1.45 -  typename T::second_type operator()(const T& t) const {
    1.46 -    return t.second;
    1.47 -  }
    1.48 -};
    1.49 -
    1.50 -template <typename T>
    1.51 -struct First {
    1.52 -  typedef T argument_type;
    1.53 -  typedef typename T::first_type result_type;
    1.54 -  typename T::first_type operator()(const T& t) const {
    1.55 -    return t.first;
    1.56 -  }
    1.57 -};
    1.58 -
    1.59 -
    1.60 -int main() {
    1.61 -
    1.62 -  typedef ListGraph Graph;
    1.63 -
    1.64 -  typedef Graph::Edge Edge;
    1.65 -  typedef Graph::Node Node;
    1.66 -  typedef Graph::EdgeIt EdgeIt;
    1.67 -  typedef Graph::NodeIt NodeIt;
    1.68 -  typedef Graph::EdgeMap<int> LengthMap;
    1.69 -
    1.70 -  typedef IdMap<Graph, Edge> EdgeIdMap;
    1.71 -
    1.72 -  Graph graph;
    1.73 -  LengthMap length(graph);
    1.74 -
    1.75 -  readGraph(std::cin, graph, length);
    1.76 -
    1.77 -  const LengthMap& constLength = length;
    1.78 -
    1.79 -  copy(length.valueSet().begin(), length.valueSet().end(), 
    1.80 -       ostream_iterator<int>(cout, " "));
    1.81 -  cout << endl;
    1.82 -
    1.83 -
    1.84 -  copy(constLength.valueSet().begin(), constLength.valueSet().end(), 
    1.85 -       ostream_iterator<int>(cout, " "));
    1.86 -  cout << endl;
    1.87 -
    1.88 -
    1.89 -  transform(constLength.keySet().begin(), constLength.keySet().end(), 
    1.90 -	    ostream_iterator<int>(cout, " "), 
    1.91 -	    MapFunctor<EdgeIdMap>(EdgeIdMap(graph)));
    1.92 -  cout << endl;
    1.93 -
    1.94 -
    1.95 -  transform(constLength.mapSet().begin(), constLength.mapSet().end(), 
    1.96 -	    ostream_iterator<int>(cout, " "), 
    1.97 -	    Second<LengthMap::MapSet::Value>());
    1.98 -  cout << endl;
    1.99 -
   1.100 -  transform(constLength.mapSet().begin(), constLength.mapSet().end(), 
   1.101 -	    ostream_iterator<int>(cout, " "), 
   1.102 -	    compose1(MapFunctor<EdgeIdMap>(EdgeIdMap(graph)), 
   1.103 -		     First<LengthMap::MapSet::Value>() ));
   1.104 -  cout << endl;
   1.105 -
   1.106 -  transform(length.mapSet().begin(), length.mapSet().end(), 
   1.107 -	    ostream_iterator<int>(cout, " "), 
   1.108 -	    Second<LengthMap::MapSet::Value>());
   1.109 -  cout << endl;
   1.110 -
   1.111 -  transform(length.mapSet().begin(), length.mapSet().end(), 
   1.112 -	    ostream_iterator<int>(cout, " "), 
   1.113 -	    compose1(MapFunctor<EdgeIdMap>(EdgeIdMap(graph)), 
   1.114 -		     First<LengthMap::MapSet::Value>() ));
   1.115 -  cout << endl;
   1.116 -
   1.117 -  return 0;
   1.118 -}