gravatar
kpeter (Peter Kovacs)
kpeter@inf.elte.hu
Minor doc improvements in maps.h.
0 1 0
default
1 file changed with 34 insertions and 31 deletions:
↑ Collapse diff ↑
Ignore white space 32 line context
... ...
@@ -68,34 +68,35 @@
68 68
    /// Absorbs the value.
69 69
    void set(const K&, const T&) {}
70 70
  };
71 71

	
72 72
  ///Returns a \c NullMap class
73 73

	
74 74
  ///This function just returns a \c NullMap class.
75 75
  ///\relates NullMap
76 76
  template <typename K, typename V> 
77 77
  NullMap<K, V> nullMap() {
78 78
    return NullMap<K, V>();
79 79
  }
80 80

	
81 81

	
82 82
  /// Constant map.
83 83

	
84
  /// This is a readable map which assigns a specified value to each key.
85
  /// In other aspects it is equivalent to the \c NullMap.
84
  /// This is a \ref concepts::ReadMap "readable" map which assigns a 
85
  /// specified value to each key.
86
  /// In other aspects it is equivalent to \c NullMap.
86 87
  template<typename K, typename T>
87 88
  class ConstMap : public MapBase<K, T> {
88 89
  private:
89 90
    T v;
90 91
  public:
91 92

	
92 93
    typedef MapBase<K, T> Parent;
93 94
    typedef typename Parent::Key Key;
94 95
    typedef typename Parent::Value Value;
95 96

	
96 97
    /// Default constructor
97 98

	
98 99
    /// Default constructor.
99 100
    /// The value of the map will be uninitialized. 
100 101
    /// (More exactly it will be default constructed.)
101 102
    ConstMap() {}
... ...
@@ -120,96 +121,98 @@
120 121

	
121 122
  ///Returns a \c ConstMap class
122 123

	
123 124
  ///This function just returns a \c ConstMap class.
124 125
  ///\relates ConstMap
125 126
  template<typename K, typename V> 
126 127
  inline ConstMap<K, V> constMap(const V &v) {
127 128
    return ConstMap<K, V>(v);
128 129
  }
129 130

	
130 131

	
131 132
  template<typename T, T v>
132 133
  struct Const { };
133 134

	
134 135
  /// Constant map with inlined constant value.
135 136

	
136
  /// This is a readable map which assigns a specified value to each key.
137
  /// In other aspects it is equivalent to the \c NullMap.
137
  /// This is a \ref concepts::ReadMap "readable" map which assigns a 
138
  /// specified value to each key.
139
  /// In other aspects it is equivalent to \c NullMap.
138 140
  template<typename K, typename V, V v>
139 141
  class ConstMap<K, Const<V, v> > : public MapBase<K, V> {
140 142
  public:
141 143
    typedef MapBase<K, V> Parent;
142 144
    typedef typename Parent::Key Key;
143 145
    typedef typename Parent::Value Value;
144 146

	
145 147
    ConstMap() { }
146 148
    ///\e
147 149
    V operator[](const K&) const { return v; }
148 150
    ///\e
149 151
    void set(const K&, const V&) { }
150 152
  };
151 153

	
152
  ///Returns a \c ConstMap class
154
  ///Returns a \c ConstMap class with inlined value
153 155

	
154 156
  ///This function just returns a \c ConstMap class with inlined value.
155 157
  ///\relates ConstMap
156 158
  template<typename K, typename V, V v> 
157 159
  inline ConstMap<K, Const<V, v> > constMap() {
158 160
    return ConstMap<K, Const<V, v> >();
159 161
  }
160 162

	
161 163
  ///Map based on \c std::map
162 164

	
163 165
  ///This is essentially a wrapper for \c std::map with addition that
164 166
  ///you can specify a default value different from \c Value().
167
  ///It meets the \ref concepts::ReferenceMap "ReferenceMap" concept.
165 168
  template <typename K, typename T, typename Compare = std::less<K> >
166 169
  class StdMap : public MapBase<K, T> {
167 170
    template <typename K1, typename T1, typename C1>
168 171
    friend class StdMap;
169 172
  public:
170 173

	
171 174
    typedef MapBase<K, T> Parent;
172 175
    ///\e
173 176
    typedef typename Parent::Key Key;
174 177
    ///\e
175 178
    typedef typename Parent::Value Value;
176 179
    ///\e
177 180
    typedef T& Reference;
178 181
    ///\e
179 182
    typedef const T& ConstReference;
180 183

	
181 184
    typedef True ReferenceMapTag;
182 185

	
183 186
  private:
184 187
    
185 188
    typedef std::map<K, T, Compare> Map;
186 189
    Value _value;
187 190
    Map _map;
188 191

	
189 192
  public:
190 193

	
191 194
    /// Constructor with specified default value
192 195
    StdMap(const T& value = T()) : _value(value) {}
193
    /// \brief Constructs the map from an appropriate std::map, and explicitly
194
    /// specifies a default value.
196
    /// \brief Constructs the map from an appropriate \c std::map, and 
197
    /// explicitly specifies a default value.
195 198
    template <typename T1, typename Comp1>
196 199
    StdMap(const std::map<Key, T1, Comp1> &map, const T& value = T()) 
197 200
      : _map(map.begin(), map.end()), _value(value) {}
198 201
    
199
    /// \brief Constructs a map from an other StdMap.
202
    /// \brief Constructs a map from an other \ref StdMap.
200 203
    template<typename T1, typename Comp1>
201 204
    StdMap(const StdMap<Key, T1, Comp1> &c) 
202 205
      : _map(c._map.begin(), c._map.end()), _value(c._value) {}
203 206

	
204 207
  private:
205 208

	
206 209
    StdMap& operator=(const StdMap&);
207 210

	
208 211
  public:
209 212

	
210 213
    ///\e
211 214
    Reference operator[](const Key &k) {
212 215
      typename Map::iterator it = _map.lower_bound(k);
213 216
      if (it != _map.end() && !_map.key_comp()(k, it->first))
214 217
	return it->second;
215 218
      else
... ...
@@ -252,74 +255,75 @@
252 255
    return StdMap<K, V, Compare>(value);
253 256
  }
254 257

	
255 258
  ///Returns a \c StdMap class created from an appropriate std::map
256 259

	
257 260
  ///This function just returns a \c StdMap class created from an 
258 261
  ///appropriate std::map.
259 262
  ///\relates StdMap
260 263
  template<typename K, typename V, typename Compare = std::less<K> > 
261 264
  inline StdMap<K, V, Compare> stdMap( const std::map<K, V, Compare> &map, 
262 265
                                       const V& value = V() ) {
263 266
    return StdMap<K, V, Compare>(map, value);
264 267
  }
265 268

	
266 269
  /// \brief Map for storing values for keys from the range <tt>[0..size-1]</tt>
267 270
  ///
268
  /// The current map has the <tt>[0..size-1]</tt> keyset and the values
271
  /// This map has the <tt>[0..size-1]</tt> keyset and the values
269 272
  /// are stored in a \c std::vector<T>  container. It can be used with
270 273
  /// some data structures, for example \c UnionFind, \c BinHeap, when 
271
  /// the used items are small integer numbers. 
274
  /// the used items are small integer numbers.
275
  /// This map meets the \ref concepts::ReferenceMap "ReferenceMap" concept.
272 276
  ///
273 277
  /// \todo Revise its name
274 278
  template <typename T>
275 279
  class IntegerMap : public MapBase<int, T> {
276 280

	
277 281
    template <typename T1>
278 282
    friend class IntegerMap;
279 283

	
280 284
  public:
281 285

	
282 286
    typedef MapBase<int, T> Parent;
283 287
    ///\e
284 288
    typedef typename Parent::Key Key;
285 289
    ///\e
286 290
    typedef typename Parent::Value Value;
287 291
    ///\e
288 292
    typedef T& Reference;
289 293
    ///\e
290 294
    typedef const T& ConstReference;
291 295

	
292 296
    typedef True ReferenceMapTag;
293 297

	
294 298
  private:
295 299
    
296 300
    typedef std::vector<T> Vector;
297 301
    Vector _vector;
298 302

	
299 303
  public:
300 304

	
301 305
    /// Constructor with specified default value
302 306
    IntegerMap(int size = 0, const T& value = T()) : _vector(size, value) {}
303 307

	
304
    /// \brief Constructs the map from an appropriate std::vector.
308
    /// \brief Constructs the map from an appropriate \c std::vector.
305 309
    template <typename T1>
306 310
    IntegerMap(const std::vector<T1>& vector) 
307 311
      : _vector(vector.begin(), vector.end()) {}
308 312
    
309
    /// \brief Constructs a map from an other IntegerMap.
313
    /// \brief Constructs a map from an other \ref IntegerMap.
310 314
    template <typename T1>
311 315
    IntegerMap(const IntegerMap<T1> &c) 
312 316
      : _vector(c._vector.begin(), c._vector.end()) {}
313 317

	
314 318
    /// \brief Resize the container
315 319
    void resize(int size, const T& value = T()) {
316 320
      _vector.resize(size, value);
317 321
    }
318 322

	
319 323
  private:
320 324

	
321 325
    IntegerMap& operator=(const IntegerMap&);
322 326

	
323 327
  public:
324 328

	
325 329
    ///\e
... ...
@@ -387,35 +391,33 @@
387 391
  ///converts the \c Value of a map to type \c T.
388 392
  ///Its \c Key is inherited from \c M.
389 393
  template <typename M, typename T> 
390 394
  class ConvertMap : public MapBase<typename M::Key, T> {
391 395
    const M& m;
392 396
  public:
393 397
    typedef MapBase<typename M::Key, T> Parent;
394 398
    typedef typename Parent::Key Key;
395 399
    typedef typename Parent::Value Value;
396 400

	
397 401
    ///Constructor
398 402

	
399 403
    ///Constructor.
400 404
    ///\param _m is the underlying map.
401 405
    ConvertMap(const M &_m) : m(_m) {};
402 406

	
403
    /// \brief The subscript operator.
404
    ///
405
    /// The subscript operator.
407
    ///\e
406 408
    Value operator[](const Key& k) const {return m[k];}
407 409
  };
408 410
  
409 411
  ///Returns a \c ConvertMap class
410 412

	
411 413
  ///This function just returns a \c ConvertMap class.
412 414
  ///\relates ConvertMap
413 415
  template<typename T, typename M>
414 416
  inline ConvertMap<M, T> convertMap(const M &m) {
415 417
    return ConvertMap<M, T>(m);
416 418
  }
417 419

	
418 420
  ///Simple wrapping of a map
419 421

	
420 422
  ///This \ref concepts::ReadMap "read only map" returns the simple
421 423
  ///wrapping of the given map. Sometimes the reference maps cannot be
... ...
@@ -477,53 +479,53 @@
477 479
  };
478 480

	
479 481
  ///Returns a \c SimpleWriteMap class
480 482

	
481 483
  ///This function just returns a \c SimpleWriteMap class.
482 484
  ///\relates SimpleWriteMap
483 485
  template<typename M>
484 486
  inline SimpleWriteMap<M> simpleWriteMap(M &m) {
485 487
    return SimpleWriteMap<M>(m);
486 488
  }
487 489

	
488 490
  ///Sum of two maps
489 491

	
490 492
  ///This \ref concepts::ReadMap "read only map" returns the sum of the two
491 493
  ///given maps.
492 494
  ///Its \c Key and \c Value are inherited from \c M1.
493
  ///The \c Key and \c Value of M2 must be convertible to those of \c M1.
495
  ///The \c Key and \c Value of \c M2 must be convertible to those of \c M1.
494 496
  template<typename M1, typename M2> 
495 497
  class AddMap : public MapBase<typename M1::Key, typename M1::Value> {
496 498
    const M1& m1;
497 499
    const M2& m2;
498 500

	
499 501
  public:
500 502
    typedef MapBase<typename M1::Key, typename M1::Value> Parent;
501 503
    typedef typename Parent::Key Key;
502 504
    typedef typename Parent::Value Value;
503 505

	
504 506
    ///Constructor
505 507
    AddMap(const M1 &_m1,const M2 &_m2) : m1(_m1), m2(_m2) {};
506 508
    ///\e
507 509
    Value operator[](Key k) const {return m1[k]+m2[k];}
508 510
  };
509 511
  
510 512
  ///Returns an \c AddMap class
511 513

	
512 514
  ///This function just returns an \c AddMap class.
513
  ///\todo How to call these type of functions?
515
  ///\todo Extend the documentation: how to call these type of functions?
514 516
  ///
515 517
  ///\relates AddMap
516 518
  template<typename M1, typename M2> 
517 519
  inline AddMap<M1, M2> addMap(const M1 &m1,const M2 &m2) {
518 520
    return AddMap<M1, M2>(m1,m2);
519 521
  }
520 522

	
521 523
  ///Shift a map with a constant.
522 524

	
523 525
  ///This \ref concepts::ReadMap "read only map" returns the sum of the
524 526
  ///given map and a constant value.
525 527
  ///Its \c Key and \c Value are inherited from \c M.
526 528
  ///
527 529
  ///Actually,
528 530
  ///\code
529 531
  ///  ShiftMap<X> sh(x,v);
... ...
@@ -994,82 +996,84 @@
994 996

	
995 997
  ///This function just returns an \c AbsMap class.
996 998
  ///\relates AbsMap
997 999
  template<typename M> 
998 1000
  inline AbsMap<M> absMap(const M &m) {
999 1001
    return AbsMap<M>(m);
1000 1002
  }
1001 1003

	
1002 1004
  ///Converts an STL style functor to a map
1003 1005

	
1004 1006
  ///This \ref concepts::ReadMap "read only map" returns the value
1005 1007
  ///of a given functor.
1006 1008
  ///
1007 1009
  ///Template parameters \c K and \c V will become its
1008 1010
  ///\c Key and \c Value. 
1009 1011
  ///In most cases they have to be given explicitly because a 
1010
  ///functor typically does not provide such typedefs.
1012
  ///functor typically does not provide \c argument_type and 
1013
  ///\c result_type typedefs.
1011 1014
  ///
1012 1015
  ///Parameter \c F is the type of the used functor.
1013 1016
  ///
1014 1017
  ///\sa MapFunctor
1015 1018
  template<typename F, 
1016 1019
	   typename K = typename F::argument_type, 
1017 1020
	   typename V = typename F::result_type> 
1018 1021
  class FunctorMap : public MapBase<K, V> {
1019 1022
    F f;
1020 1023
  public:
1021 1024
    typedef MapBase<K, V> Parent;
1022 1025
    typedef typename Parent::Key Key;
1023 1026
    typedef typename Parent::Value Value;
1024 1027

	
1025 1028
    ///Constructor
1026 1029
    FunctorMap(const F &_f = F()) : f(_f) {}
1027 1030
    /// \e
1028 1031
    Value operator[](Key k) const { return f(k);}
1029 1032
  };
1030 1033
  
1031 1034
  ///Returns a \c FunctorMap class
1032 1035

	
1033 1036
  ///This function just returns a \c FunctorMap class.
1034 1037
  ///
1035
  ///It is specialized for adaptable function classes and
1036
  ///C++ functions.
1038
  ///This function is specialized for adaptable binary function
1039
  ///classes and C++ functions.
1040
  ///
1037 1041
  ///\relates FunctorMap
1038 1042
  template<typename K, typename V, typename F> inline 
1039 1043
  FunctorMap<F, K, V> functorMap(const F &f) {
1040 1044
    return FunctorMap<F, K, V>(f);
1041 1045
  }
1042 1046

	
1043 1047
  template <typename F> inline 
1044 1048
  FunctorMap<F, typename F::argument_type, typename F::result_type> 
1045 1049
  functorMap(const F &f) {
1046 1050
    return FunctorMap<F, typename F::argument_type, 
1047 1051
      typename F::result_type>(f);
1048 1052
  }
1049 1053

	
1050 1054
  template <typename K, typename V> inline 
1051 1055
  FunctorMap<V (*)(K), K, V> functorMap(V (*f)(K)) {
1052 1056
    return FunctorMap<V (*)(K), K, V>(f);
1053 1057
  }
1054 1058

	
1055 1059

	
1056 1060
  ///Converts a map to an STL style (unary) functor
1057 1061

	
1058 1062
  ///This class Converts a map to an STL style (unary) functor.
1059
  ///that is it provides an <tt>operator()</tt> to read its values.
1063
  ///That is it provides an <tt>operator()</tt> to read its values.
1060 1064
  ///
1061 1065
  ///For the sake of convenience it also works as
1062 1066
  ///a ususal \ref concepts::ReadMap "readable map",
1063 1067
  ///i.e. <tt>operator[]</tt> and the \c Key and \c Value typedefs also exist.
1064 1068
  ///
1065 1069
  ///\sa FunctorMap
1066 1070
  template <typename M> 
1067 1071
  class MapFunctor : public MapBase<typename M::Key, typename M::Value> {
1068 1072
    const M& m;
1069 1073
  public:
1070 1074
    typedef MapBase<typename M::Key, typename M::Value> Parent;
1071 1075
    typedef typename Parent::Key Key;
1072 1076
    typedef typename Parent::Value Value;
1073 1077

	
1074 1078
    typedef typename M::Key argument_type;
1075 1079
    typedef typename M::Value result_type;
... ...
@@ -1078,70 +1082,70 @@
1078 1082
    MapFunctor(const M &_m) : m(_m) {};
1079 1083
    ///\e
1080 1084
    Value operator()(Key k) const {return m[k];}
1081 1085
    ///\e
1082 1086
    Value operator[](Key k) const {return m[k];}
1083 1087
  };
1084 1088
  
1085 1089
  ///Returns a \c MapFunctor class
1086 1090

	
1087 1091
  ///This function just returns a \c MapFunctor class.
1088 1092
  ///\relates MapFunctor
1089 1093
  template<typename M> 
1090 1094
  inline MapFunctor<M> mapFunctor(const M &m) {
1091 1095
    return MapFunctor<M>(m);
1092 1096
  }
1093 1097

	
1094
  ///Applies all map setting operations to two maps
1098
  ///Just readable version of \ref ForkWriteMap
1095 1099

	
1096 1100
  ///This map has two \ref concepts::ReadMap "readable map"
1097 1101
  ///parameters and each read request will be passed just to the
1098
  ///first map. This class is the just readable map type of the \c ForkWriteMap.
1102
  ///first map. This class is the just readable map type of \c ForkWriteMap.
1099 1103
  ///
1100 1104
  ///The \c Key and \c Value are inherited from \c M1.
1101
  ///The \c Key and \c Value of M2 must be convertible from those of \c M1.
1105
  ///The \c Key and \c Value of \c M2 must be convertible from those of \c M1.
1102 1106
  ///
1103 1107
  ///\sa ForkWriteMap
1104 1108
  ///
1105 1109
  /// \todo Why is it needed?
1106 1110
  template<typename  M1, typename M2> 
1107 1111
  class ForkMap : public MapBase<typename M1::Key, typename M1::Value> {
1108 1112
    const M1& m1;
1109 1113
    const M2& m2;
1110 1114
  public:
1111 1115
    typedef MapBase<typename M1::Key, typename M1::Value> Parent;
1112 1116
    typedef typename Parent::Key Key;
1113 1117
    typedef typename Parent::Value Value;
1114 1118

	
1115 1119
    ///Constructor
1116 1120
    ForkMap(const M1 &_m1, const M2 &_m2) : m1(_m1), m2(_m2) {};
1117 1121
    /// \e
1118 1122
    Value operator[](Key k) const {return m1[k];}
1119 1123
  };
1120 1124

	
1121 1125

	
1122 1126
  ///Applies all map setting operations to two maps
1123 1127

	
1124 1128
  ///This map has two \ref concepts::WriteMap "writable map"
1125 1129
  ///parameters and each write request will be passed to both of them.
1126 1130
  ///If \c M1 is also \ref concepts::ReadMap "readable",
1127 1131
  ///then the read operations will return the
1128 1132
  ///corresponding values of \c M1.
1129 1133
  ///
1130 1134
  ///The \c Key and \c Value are inherited from \c M1.
1131
  ///The \c Key and \c Value of M2 must be convertible from those of \c M1.
1135
  ///The \c Key and \c Value of \c M2 must be convertible from those of \c M1.
1132 1136
  ///
1133 1137
  ///\sa ForkMap
1134 1138
  template<typename  M1, typename M2> 
1135 1139
  class ForkWriteMap : public MapBase<typename M1::Key, typename M1::Value> {
1136 1140
    M1& m1;
1137 1141
    M2& m2;
1138 1142
  public:
1139 1143
    typedef MapBase<typename M1::Key, typename M1::Value> Parent;
1140 1144
    typedef typename Parent::Key Key;
1141 1145
    typedef typename Parent::Value Value;
1142 1146

	
1143 1147
    ///Constructor
1144 1148
    ForkWriteMap(M1 &_m1, M2 &_m2) : m1(_m1), m2(_m2) {};
1145 1149
    ///\e
1146 1150
    Value operator[](Key k) const {return m1[k];}
1147 1151
    ///\e
... ...
@@ -1161,55 +1165,55 @@
1161 1165

	
1162 1166
  ///This function just returns a \c ForkWriteMap class.
1163 1167
  ///\relates ForkWriteMap
1164 1168
  template <typename M1, typename M2> 
1165 1169
  inline ForkWriteMap<M1, M2> forkMap(M1 &m1, M2 &m2) {
1166 1170
    return ForkWriteMap<M1, M2>(m1,m2);
1167 1171
  }
1168 1172

	
1169 1173

	
1170 1174
  
1171 1175
  /* ************* BOOL MAPS ******************* */
1172 1176
  
1173 1177
  ///Logical 'not' of a map
1174 1178
  
1175 1179
  ///This bool \ref concepts::ReadMap "read only map" returns the 
1176 1180
  ///logical negation of the value returned by the given map.
1177
  ///Its \c Key is inherited from \c M, its Value is \c bool.
1181
  ///Its \c Key is inherited from \c M, its \c Value is \c bool.
1178 1182
  ///
1179 1183
  ///\sa NotWriteMap
1180 1184
  template <typename M> 
1181 1185
  class NotMap : public MapBase<typename M::Key, bool> {
1182 1186
    const M& m;
1183 1187
  public:
1184 1188
    typedef MapBase<typename M::Key, bool> Parent;
1185 1189
    typedef typename Parent::Key Key;
1186 1190
    typedef typename Parent::Value Value;
1187 1191

	
1188 1192
    /// Constructor
1189 1193
    NotMap(const M &_m) : m(_m) {};
1190 1194
    ///\e
1191 1195
    Value operator[](Key k) const {return !m[k];}
1192 1196
  };
1193 1197

	
1194 1198
  ///Logical 'not' of a map (ReadWrie version)
1195 1199
  
1196 1200
  ///This bool \ref concepts::ReadWriteMap "read-write map" returns the 
1197 1201
  ///logical negation of the value returned by the given map. When it is set,
1198 1202
  ///the opposite value is set to the original map.
1199
  ///Its \c Key is inherited from \c M, its Value is \c bool.
1203
  ///Its \c Key is inherited from \c M, its \c Value is \c bool.
1200 1204
  ///
1201 1205
  ///\sa NotMap
1202 1206
  template <typename M> 
1203 1207
  class NotWriteMap : public MapBase<typename M::Key, bool> {
1204 1208
    M& m;
1205 1209
  public:
1206 1210
    typedef MapBase<typename M::Key, bool> Parent;
1207 1211
    typedef typename Parent::Key Key;
1208 1212
    typedef typename Parent::Value Value;
1209 1213

	
1210 1214
    /// Constructor
1211 1215
    NotWriteMap(M &_m) : m(_m) {};
1212 1216
    ///\e
1213 1217
    Value operator[](Key k) const {return !m[k];}
1214 1218
    ///\e
1215 1219
    void set(Key k, bool v) { m.set(k, !v); }
... ...
@@ -1249,41 +1253,40 @@
1249 1253
      typedef typename std::iterator_traits<_Iterator>::value_type Value;
1250 1254
    };
1251 1255

	
1252 1256
    template <typename _Iterator>
1253 1257
    struct IteratorTraits<_Iterator,
1254 1258
      typename exists<typename _Iterator::container_type>::type> 
1255 1259
    {
1256 1260
      typedef typename _Iterator::container_type::value_type Value;
1257 1261
    };
1258 1262

	
1259 1263
  }
1260 1264
  
1261 1265

	
1262 1266
  /// \brief Writable bool map for logging each \c true assigned element
1263 1267
  ///
1264 1268
  /// A \ref concepts::ReadWriteMap "read-write" bool map for logging 
1265
  /// each \c true assigned element, i.e it/ copies all the keys set 
1269
  /// each \c true assigned element, i.e it copies all the keys set 
1266 1270
  /// to \c true to the given iterator.
1267 1271
  ///
1268 1272
  /// \note The container of the iterator should contain space 
1269 1273
  /// for each element.
1270 1274
  ///
1271
  /// The following example shows how you can write the edges found by the Prim
1272
  /// algorithm directly
1273
  /// to the standard output.
1275
  /// The following example shows how you can write the edges found by 
1276
  /// the \ref Prim algorithm directly to the standard output.
1274 1277
  ///\code
1275 1278
  /// typedef IdMap<Graph, Edge> EdgeIdMap;
1276 1279
  /// EdgeIdMap edgeId(graph);
1277 1280
  ///
1278 1281
  /// typedef MapFunctor<EdgeIdMap> EdgeIdFunctor;
1279 1282
  /// EdgeIdFunctor edgeIdFunctor(edgeId);
1280 1283
  ///
1281 1284
  /// StoreBoolMap<ostream_iterator<int>, EdgeIdFunctor> 
1282 1285
  ///   writerMap(ostream_iterator<int>(cout, " "), edgeIdFunctor);
1283 1286
  ///
1284 1287
  /// prim(graph, cost, writerMap);
1285 1288
  ///\endcode
1286 1289
  ///
1287 1290
  ///\sa BackInserterBoolMap 
1288 1291
  ///\sa FrontInserterBoolMap 
1289 1292
  ///\sa InserterBoolMap 
0 comments (0 inline)