... | ... |
@@ -56,7 +56,7 @@ |
56 | 56 |
/// its type definitions, or if you have to provide a writable map, |
57 | 57 |
/// but data written to it is not required (i.e. it will be sent to |
58 | 58 |
/// <tt>/dev/null</tt>). |
59 |
/// It conforms the \ref concepts::ReadWriteMap "ReadWriteMap" concept. |
|
59 |
/// It conforms to the \ref concepts::ReadWriteMap "ReadWriteMap" concept. |
|
60 | 60 |
/// |
61 | 61 |
/// \sa ConstMap |
62 | 62 |
template<typename K, typename V> |
... | ... |
@@ -89,7 +89,7 @@ |
89 | 89 |
/// value to each key. |
90 | 90 |
/// |
91 | 91 |
/// In other aspects it is equivalent to \c NullMap. |
92 |
/// So it conforms the \ref concepts::ReadWriteMap "ReadWriteMap" |
|
92 |
/// So it conforms to the \ref concepts::ReadWriteMap "ReadWriteMap" |
|
93 | 93 |
/// concept, but it absorbs the data written to it. |
94 | 94 |
/// |
95 | 95 |
/// The simplest way of using this map is through the constMap() |
... | ... |
@@ -158,7 +158,7 @@ |
158 | 158 |
/// value to each key. |
159 | 159 |
/// |
160 | 160 |
/// In other aspects it is equivalent to \c NullMap. |
161 |
/// So it conforms the \ref concepts::ReadWriteMap "ReadWriteMap" |
|
161 |
/// So it conforms to the \ref concepts::ReadWriteMap "ReadWriteMap" |
|
162 | 162 |
/// concept, but it absorbs the data written to it. |
163 | 163 |
/// |
164 | 164 |
/// The simplest way of using this map is through the constMap() |
... | ... |
@@ -232,7 +232,7 @@ |
232 | 232 |
/// values to integer keys from the range <tt>[0..size-1]</tt>. |
233 | 233 |
/// It can be used with some data structures, for example |
234 | 234 |
/// \c UnionFind, \c BinHeap, when the used items are small |
235 |
/// integers. This map conforms the \ref concepts::ReferenceMap |
|
235 |
/// integers. This map conforms to the \ref concepts::ReferenceMap |
|
236 | 236 |
/// "ReferenceMap" concept. |
237 | 237 |
/// |
238 | 238 |
/// The simplest way of using this map is through the rangeMap() |
... | ... |
@@ -340,7 +340,7 @@ |
340 | 340 |
/// that you can specify a default value for the keys that are not |
341 | 341 |
/// stored actually. This value can be different from the default |
342 | 342 |
/// contructed value (i.e. \c %Value()). |
343 |
/// This type conforms the \ref concepts::ReferenceMap "ReferenceMap" |
|
343 |
/// This type conforms to the \ref concepts::ReferenceMap "ReferenceMap" |
|
344 | 344 |
/// concept. |
345 | 345 |
/// |
346 | 346 |
/// This map is useful if a default value should be assigned to most of |
... | ... |
@@ -706,7 +706,7 @@ |
706 | 706 |
/// "readable map" to another type using the default conversion. |
707 | 707 |
/// The \c Key type of it is inherited from \c M and the \c Value |
708 | 708 |
/// type is \c V. |
709 |
/// This type conforms the \ref concepts::ReadMap "ReadMap" concept. |
|
709 |
/// This type conforms to the \ref concepts::ReadMap "ReadMap" concept. |
|
710 | 710 |
/// |
711 | 711 |
/// The simplest way of using this map is through the convertMap() |
712 | 712 |
/// function. |
... | ... |
@@ -1865,9 +1865,11 @@ |
1865 | 1865 |
|
1866 | 1866 |
public: |
1867 | 1867 |
|
1868 |
/// \brief |
|
1868 |
/// \brief The inverse map type of IdMap. |
|
1869 | 1869 |
/// |
1870 |
/// |
|
1870 |
/// The inverse map type of IdMap. The subscript operator gives back |
|
1871 |
/// an item by its id. |
|
1872 |
/// This type conforms to the \ref concepts::ReadMap "ReadMap" concept. |
|
1871 | 1873 |
/// \see inverse() |
1872 | 1874 |
class InverseMap { |
1873 | 1875 |
public: |
... | ... |
@@ -1882,9 +1884,9 @@ |
1882 | 1884 |
/// Constructor for creating an id-to-item map. |
1883 | 1885 |
explicit InverseMap(const IdMap& map) : _graph(map._graph) {} |
1884 | 1886 |
|
1885 |
/// \brief Gives back |
|
1887 |
/// \brief Gives back an item by its id. |
|
1886 | 1888 |
/// |
1887 |
/// Gives back |
|
1889 |
/// Gives back an item by its id. |
|
1888 | 1890 |
Item operator[](int id) const { return _graph->fromId(id, Item());} |
1889 | 1891 |
|
1890 | 1892 |
private: |
... | ... |
@@ -1903,8 +1905,17 @@ |
1903 | 1905 |
/// This class provides simple invertable graph maps. |
1904 | 1906 |
/// It wraps a standard graph map (\c NodeMap, \c ArcMap or \c EdgeMap) |
1905 | 1907 |
/// and if a key is set to a new value, then stores it in the inverse map. |
1906 |
/// The values of the map can be accessed |
|
1907 |
/// with stl compatible forward iterator. |
|
1908 |
/// The graph items can be accessed by their values either using |
|
1909 |
/// \c InverseMap or \c operator()(), and the values of the map can be |
|
1910 |
/// accessed with an STL compatible forward iterator (\c ValueIterator). |
|
1911 |
/// |
|
1912 |
/// This map is intended to be used when all associated values are |
|
1913 |
/// different (the map is actually invertable) or there are only a few |
|
1914 |
/// items with the same value. |
|
1915 |
/// Otherwise consider to use \c IterableValueMap, which is more |
|
1916 |
/// suitable and more efficient for such cases. It provides iterators |
|
1917 |
/// to traverse the items with the same associated value, however |
|
1918 |
/// it does not have \c InverseMap. |
|
1908 | 1919 |
/// |
1909 | 1920 |
/// This type is not reference map, so it cannot be modified with |
1910 | 1921 |
/// the subscript operator. |
... | ... |
@@ -1945,7 +1956,7 @@ |
1945 | 1956 |
|
1946 | 1957 |
/// \brief Forward iterator for values. |
1947 | 1958 |
/// |
1948 |
/// This iterator is an |
|
1959 |
/// This iterator is an STL compatible forward |
|
1949 | 1960 |
/// iterator on the values of the map. The values can |
1950 | 1961 |
/// be accessed in the <tt>[beginValue, endValue)</tt> range. |
1951 | 1962 |
/// They are considered with multiplicity, so each value is |
... | ... |
@@ -1958,19 +1969,26 @@ |
1958 | 1969 |
: it(_it) {} |
1959 | 1970 |
public: |
1960 | 1971 |
|
1972 |
/// Constructor |
|
1961 | 1973 |
ValueIterator() {} |
1962 | 1974 |
|
1975 |
/// \e |
|
1963 | 1976 |
ValueIterator& operator++() { ++it; return *this; } |
1977 |
/// \e |
|
1964 | 1978 |
ValueIterator operator++(int) { |
1965 | 1979 |
ValueIterator tmp(*this); |
1966 | 1980 |
operator++(); |
1967 | 1981 |
return tmp; |
1968 | 1982 |
} |
1969 | 1983 |
|
1984 |
/// \e |
|
1970 | 1985 |
const Value& operator*() const { return it->first; } |
1986 |
/// \e |
|
1971 | 1987 |
const Value* operator->() const { return &(it->first); } |
1972 | 1988 |
|
1989 |
/// \e |
|
1973 | 1990 |
bool operator==(ValueIterator jt) const { return it == jt.it; } |
1991 |
/// \e |
|
1974 | 1992 |
bool operator!=(ValueIterator jt) const { return it != jt.it; } |
1975 | 1993 |
|
1976 | 1994 |
private: |
... | ... |
@@ -1979,7 +1997,7 @@ |
1979 | 1997 |
|
1980 | 1998 |
/// \brief Returns an iterator to the first value. |
1981 | 1999 |
/// |
1982 |
/// Returns an |
|
2000 |
/// Returns an STL compatible iterator to the |
|
1983 | 2001 |
/// first value of the map. The values of the |
1984 | 2002 |
/// map can be accessed in the <tt>[beginValue, endValue)</tt> |
1985 | 2003 |
/// range. |
... | ... |
@@ -1989,7 +2007,7 @@ |
1989 | 2007 |
|
1990 | 2008 |
/// \brief Returns an iterator after the last value. |
1991 | 2009 |
/// |
1992 |
/// Returns an |
|
2010 |
/// Returns an STL compatible iterator after the |
|
1993 | 2011 |
/// last value of the map. The values of the |
1994 | 2012 |
/// map can be accessed in the <tt>[beginValue, endValue)</tt> |
1995 | 2013 |
/// range. |
... | ... |
@@ -2090,10 +2108,12 @@ |
2090 | 2108 |
|
2091 | 2109 |
public: |
2092 | 2110 |
|
2093 |
/// \brief The inverse map type. |
|
2111 |
/// \brief The inverse map type of CrossRefMap. |
|
2094 | 2112 |
/// |
2095 |
/// The inverse of this map. The subscript operator of the map |
|
2096 |
/// gives back the item that was last assigned to the value. |
|
2113 |
/// The inverse map type of CrossRefMap. The subscript operator gives |
|
2114 |
/// back an item by its value. |
|
2115 |
/// This type conforms to the \ref concepts::ReadMap "ReadMap" concept. |
|
2116 |
/// \see inverse() |
|
2097 | 2117 |
class InverseMap { |
2098 | 2118 |
public: |
2099 | 2119 |
/// \brief Constructor |
... | ... |
@@ -2120,9 +2140,9 @@ |
2120 | 2140 |
const CrossRefMap& _inverted; |
2121 | 2141 |
}; |
2122 | 2142 |
|
2123 |
/// \brief |
|
2143 |
/// \brief Gives back the inverse of the map. |
|
2124 | 2144 |
/// |
2125 |
/// |
|
2145 |
/// Gives back the inverse of the CrossRefMap. |
|
2126 | 2146 |
InverseMap inverse() const { |
2127 | 2147 |
return InverseMap(*this); |
2128 | 2148 |
} |
... | ... |
@@ -2272,16 +2292,16 @@ |
2272 | 2292 |
_inv_map[pi] = q; |
2273 | 2293 |
} |
2274 | 2294 |
|
2275 |
/// \brief Gives back the \e |
|
2295 |
/// \brief Gives back the \e range \e id of the item |
|
2276 | 2296 |
/// |
2277 |
/// Gives back the \e |
|
2297 |
/// Gives back the \e range \e id of the item. |
|
2278 | 2298 |
int operator[](const Item& item) const { |
2279 | 2299 |
return Map::operator[](item); |
2280 | 2300 |
} |
2281 | 2301 |
|
2282 |
/// \brief Gives back the item belonging to a \e |
|
2302 |
/// \brief Gives back the item belonging to a \e range \e id |
|
2283 | 2303 |
/// |
2284 |
/// Gives back the item belonging to |
|
2304 |
/// Gives back the item belonging to the given \e range \e id. |
|
2285 | 2305 |
Item operator()(int id) const { |
2286 | 2306 |
return _inv_map[id]; |
2287 | 2307 |
} |
... | ... |
@@ -2295,7 +2315,9 @@ |
2295 | 2315 |
|
2296 | 2316 |
/// \brief The inverse map type of RangeIdMap. |
2297 | 2317 |
/// |
2298 |
/// The inverse map type of RangeIdMap. |
|
2318 |
/// The inverse map type of RangeIdMap. The subscript operator gives |
|
2319 |
/// back an item by its \e range \e id. |
|
2320 |
/// This type conforms to the \ref concepts::ReadMap "ReadMap" concept. |
|
2299 | 2321 |
class InverseMap { |
2300 | 2322 |
public: |
2301 | 2323 |
/// \brief Constructor |
... | ... |
@@ -2313,7 +2335,7 @@ |
2313 | 2335 |
/// \brief Subscript operator. |
2314 | 2336 |
/// |
2315 | 2337 |
/// Subscript operator. It gives back the item |
2316 |
/// that the |
|
2338 |
/// that the given \e range \e id currently belongs to. |
|
2317 | 2339 |
Value operator[](const Key& key) const { |
2318 | 2340 |
return _inverted(key); |
2319 | 2341 |
} |
... | ... |
@@ -2331,7 +2353,7 @@ |
2331 | 2353 |
|
2332 | 2354 |
/// \brief Gives back the inverse of the map. |
2333 | 2355 |
/// |
2334 |
/// Gives back the inverse of the |
|
2356 |
/// Gives back the inverse of the RangeIdMap. |
|
2335 | 2357 |
const InverseMap inverse() const { |
2336 | 2358 |
return InverseMap(*this); |
2337 | 2359 |
} |
... | ... |
@@ -2342,10 +2364,10 @@ |
2342 | 2364 |
/// This class provides a special graph map type which can store a |
2343 | 2365 |
/// \c bool value for graph items (\c Node, \c Arc or \c Edge). |
2344 | 2366 |
/// For both \c true and \c false values it is possible to iterate on |
2345 |
/// the keys. |
|
2367 |
/// the keys mapped to the value. |
|
2346 | 2368 |
/// |
2347 | 2369 |
/// This type is a reference map, so it can be modified with the |
2348 |
/// |
|
2370 |
/// subscript operator. |
|
2349 | 2371 |
/// |
2350 | 2372 |
/// \tparam GR The graph type. |
2351 | 2373 |
/// \tparam K The key type of the map (\c GR::Node, \c GR::Arc or |
... | ... |
@@ -2711,8 +2733,13 @@ |
2711 | 2733 |
/// For each non-negative value it is possible to iterate on the keys |
2712 | 2734 |
/// mapped to the value. |
2713 | 2735 |
/// |
2736 |
/// This map is intended to be used with small integer values, for which |
|
2737 |
/// it is efficient, and supports iteration only for non-negative values. |
|
2738 |
/// If you need large values and/or iteration for negative integers, |
|
2739 |
/// consider to use \ref IterableValueMap instead. |
|
2740 |
/// |
|
2714 | 2741 |
/// This type is a reference map, so it can be modified with the |
2715 |
/// |
|
2742 |
/// subscript operator. |
|
2716 | 2743 |
/// |
2717 | 2744 |
/// \note The size of the data structure depends on the largest |
2718 | 2745 |
/// value in the map. |
... | ... |
@@ -2992,18 +3019,20 @@ |
2992 | 3019 |
|
2993 | 3020 |
/// \brief Dynamic iterable map for comparable values. |
2994 | 3021 |
/// |
2995 |
/// This class provides a special graph map type which can store |
|
3022 |
/// This class provides a special graph map type which can store a |
|
2996 | 3023 |
/// comparable value for graph items (\c Node, \c Arc or \c Edge). |
2997 | 3024 |
/// For each value it is possible to iterate on the keys mapped to |
2998 |
/// the value |
|
3025 |
/// the value (\c ItemIt), and the values of the map can be accessed |
|
3026 |
/// with an STL compatible forward iterator (\c ValueIterator). |
|
3027 |
/// The map stores a linked list for each value, which contains |
|
3028 |
/// the items mapped to the value, and the used values are stored |
|
3029 |
/// in balanced binary tree (\c std::map). |
|
2999 | 3030 |
/// |
3000 |
/// The map stores for each value a linked list with |
|
3001 |
/// the items which mapped to the value, and the values are stored |
|
3002 |
/// in balanced binary tree. The values of the map can be accessed |
|
3003 |
/// with stl compatible forward iterator. |
|
3031 |
/// \ref IterableBoolMap and \ref IterableIntMap are similar classes |
|
3032 |
/// specialized for \c bool and \c int values, respectively. |
|
3004 | 3033 |
/// |
3005 | 3034 |
/// This type is not reference map, so it cannot be modified with |
3006 |
/// the |
|
3035 |
/// the subscript operator. |
|
3007 | 3036 |
/// |
3008 | 3037 |
/// \tparam GR The graph type. |
3009 | 3038 |
/// \tparam K The key type of the map (\c GR::Node, \c GR::Arc or |
... | ... |
@@ -3079,7 +3108,7 @@ |
3079 | 3108 |
|
3080 | 3109 |
/// \brief Forward iterator for values. |
3081 | 3110 |
/// |
3082 |
/// This iterator is an |
|
3111 |
/// This iterator is an STL compatible forward |
|
3083 | 3112 |
/// iterator on the values of the map. The values can |
3084 | 3113 |
/// be accessed in the <tt>[beginValue, endValue)</tt> range. |
3085 | 3114 |
class ValueIterator |
... | ... |
@@ -3090,19 +3119,26 @@ |
3090 | 3119 |
: it(_it) {} |
3091 | 3120 |
public: |
3092 | 3121 |
|
3122 |
/// Constructor |
|
3093 | 3123 |
ValueIterator() {} |
3094 | 3124 |
|
3125 |
/// \e |
|
3095 | 3126 |
ValueIterator& operator++() { ++it; return *this; } |
3127 |
/// \e |
|
3096 | 3128 |
ValueIterator operator++(int) { |
3097 | 3129 |
ValueIterator tmp(*this); |
3098 | 3130 |
operator++(); |
3099 | 3131 |
return tmp; |
3100 | 3132 |
} |
3101 | 3133 |
|
3134 |
/// \e |
|
3102 | 3135 |
const Value& operator*() const { return it->first; } |
3136 |
/// \e |
|
3103 | 3137 |
const Value* operator->() const { return &(it->first); } |
3104 | 3138 |
|
3139 |
/// \e |
|
3105 | 3140 |
bool operator==(ValueIterator jt) const { return it == jt.it; } |
3141 |
/// \e |
|
3106 | 3142 |
bool operator!=(ValueIterator jt) const { return it != jt.it; } |
3107 | 3143 |
|
3108 | 3144 |
private: |
... | ... |
@@ -3111,7 +3147,7 @@ |
3111 | 3147 |
|
3112 | 3148 |
/// \brief Returns an iterator to the first value. |
3113 | 3149 |
/// |
3114 |
/// Returns an |
|
3150 |
/// Returns an STL compatible iterator to the |
|
3115 | 3151 |
/// first value of the map. The values of the |
3116 | 3152 |
/// map can be accessed in the <tt>[beginValue, endValue)</tt> |
3117 | 3153 |
/// range. |
... | ... |
@@ -3121,7 +3157,7 @@ |
3121 | 3157 |
|
3122 | 3158 |
/// \brief Returns an iterator after the last value. |
3123 | 3159 |
/// |
3124 |
/// Returns an |
|
3160 |
/// Returns an STL compatible iterator after the |
|
3125 | 3161 |
/// last value of the map. The values of the |
3126 | 3162 |
/// map can be accessed in the <tt>[beginValue, endValue)</tt> |
3127 | 3163 |
/// range. |
0 comments (0 inline)