... | ... |
@@ -53,13 +53,13 @@ |
53 | 53 |
/// Null map. (a.k.a. DoNothingMap) |
54 | 54 |
|
55 | 55 |
/// This map can be used if you have to provide a map only for |
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> |
63 | 63 |
class NullMap : public MapBase<K, V> { |
64 | 64 |
public: |
65 | 65 |
///\e |
... | ... |
@@ -86,13 +86,13 @@ |
86 | 86 |
/// Constant map. |
87 | 87 |
|
88 | 88 |
/// This \ref concepts::ReadMap "readable map" assigns a specified |
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() |
96 | 96 |
/// function. |
97 | 97 |
/// |
98 | 98 |
/// \sa NullMap |
... | ... |
@@ -155,13 +155,13 @@ |
155 | 155 |
/// Constant map with inlined constant value. |
156 | 156 |
|
157 | 157 |
/// This \ref concepts::ReadMap "readable map" assigns a specified |
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() |
165 | 165 |
/// function. |
166 | 166 |
/// |
167 | 167 |
/// \sa NullMap |
... | ... |
@@ -229,13 +229,13 @@ |
229 | 229 |
/// <tt>[0..size-1]</tt>. |
230 | 230 |
/// |
231 | 231 |
/// This map is essentially a wrapper for \c std::vector. It assigns |
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() |
239 | 239 |
/// function. |
240 | 240 |
template <typename V> |
241 | 241 |
class RangeMap : public MapBase<int, V> { |
... | ... |
@@ -337,13 +337,13 @@ |
337 | 337 |
/// Map type based on \c std::map |
338 | 338 |
|
339 | 339 |
/// This map is essentially a wrapper for \c std::map with addition |
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 |
347 | 347 |
/// the keys and different values should be assigned only to a few |
348 | 348 |
/// keys (i.e. the map is "sparse"). |
349 | 349 |
/// The name of this type also refers to this important usage. |
... | ... |
@@ -703,13 +703,13 @@ |
703 | 703 |
/// another type using the default conversion. |
704 | 704 |
|
705 | 705 |
/// Map adaptor to convert the \c Value type of a \ref concepts::ReadMap |
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. |
713 | 713 |
template <typename M, typename V> |
714 | 714 |
class ConvertMap : public MapBase<typename M::Key, V> { |
715 | 715 |
const M &_m; |
... | ... |
@@ -1862,15 +1862,17 @@ |
1862 | 1862 |
|
1863 | 1863 |
private: |
1864 | 1864 |
const Graph* _graph; |
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: |
1874 | 1876 |
|
1875 | 1877 |
/// \brief Constructor. |
1876 | 1878 |
/// |
... | ... |
@@ -1879,15 +1881,15 @@ |
1879 | 1881 |
|
1880 | 1882 |
/// \brief Constructor. |
1881 | 1883 |
/// |
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: |
1891 | 1893 |
const Graph* _graph; |
1892 | 1894 |
}; |
1893 | 1895 |
|
... | ... |
@@ -1900,14 +1902,23 @@ |
1900 | 1902 |
|
1901 | 1903 |
/// \brief General cross reference graph map type. |
1902 | 1904 |
|
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. |
1911 | 1922 |
/// |
1912 | 1923 |
/// \tparam GR The graph type. |
1913 | 1924 |
/// \tparam K The key type of the map (\c GR::Node, \c GR::Arc or |
... | ... |
@@ -1942,57 +1953,64 @@ |
1942 | 1953 |
/// |
1943 | 1954 |
/// Construct a new CrossRefMap for the given graph. |
1944 | 1955 |
explicit CrossRefMap(const Graph& graph) : Map(graph) {} |
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 |
1952 | 1963 |
/// traversed for each item it is assigned to. |
1953 | 1964 |
class ValueIterator |
1954 | 1965 |
: public std::iterator<std::forward_iterator_tag, Value> { |
1955 | 1966 |
friend class CrossRefMap; |
1956 | 1967 |
private: |
1957 | 1968 |
ValueIterator(typename Container::const_iterator _it) |
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: |
1977 | 1995 |
typename Container::const_iterator it; |
1978 | 1996 |
}; |
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. |
1986 | 2004 |
ValueIterator beginValue() const { |
1987 | 2005 |
return ValueIterator(_inv_map.begin()); |
1988 | 2006 |
} |
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. |
1996 | 2014 |
ValueIterator endValue() const { |
1997 | 2015 |
return ValueIterator(_inv_map.end()); |
1998 | 2016 |
} |
... | ... |
@@ -2087,16 +2105,18 @@ |
2087 | 2105 |
_inv_map.clear(); |
2088 | 2106 |
Map::clear(); |
2089 | 2107 |
} |
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 |
2100 | 2120 |
/// |
2101 | 2121 |
/// Constructor of the InverseMap. |
2102 | 2122 |
explicit InverseMap(const CrossRefMap& inverted) |
... | ... |
@@ -2117,15 +2137,15 @@ |
2117 | 2137 |
} |
2118 | 2138 |
|
2119 | 2139 |
private: |
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 |
} |
2129 | 2149 |
|
2130 | 2150 |
}; |
2131 | 2151 |
|
... | ... |
@@ -2269,22 +2289,22 @@ |
2269 | 2289 |
Map::set(p, qi); |
2270 | 2290 |
_inv_map[qi] = p; |
2271 | 2291 |
Map::set(q, pi); |
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 |
} |
2288 | 2308 |
|
2289 | 2309 |
private: |
2290 | 2310 |
|
... | ... |
@@ -2292,13 +2312,15 @@ |
2292 | 2312 |
Container _inv_map; |
2293 | 2313 |
|
2294 | 2314 |
public: |
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 |
2302 | 2324 |
/// |
2303 | 2325 |
/// Constructor of the InverseMap. |
2304 | 2326 |
explicit InverseMap(const RangeIdMap& inverted) |
... | ... |
@@ -2310,13 +2332,13 @@ |
2310 | 2332 |
/// The key type of the InverseMap. |
2311 | 2333 |
typedef typename RangeIdMap::Value Key; |
2312 | 2334 |
|
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 |
} |
2320 | 2342 |
|
2321 | 2343 |
/// \brief Size of the map. |
2322 | 2344 |
/// |
... | ... |
@@ -2328,27 +2350,27 @@ |
2328 | 2350 |
private: |
2329 | 2351 |
const RangeIdMap& _inverted; |
2330 | 2352 |
}; |
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 |
} |
2338 | 2360 |
}; |
2339 | 2361 |
|
2340 | 2362 |
/// \brief Dynamic iterable \c bool map. |
2341 | 2363 |
/// |
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 |
2352 | 2374 |
/// \c GR::Edge). |
2353 | 2375 |
/// |
2354 | 2376 |
/// \see IterableIntMap, IterableValueMap |
... | ... |
@@ -2708,14 +2730,19 @@ |
2708 | 2730 |
/// |
2709 | 2731 |
/// This class provides a special graph map type which can store an |
2710 | 2732 |
/// integer value for graph items (\c Node, \c Arc or \c Edge). |
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. |
2719 | 2746 |
/// |
2720 | 2747 |
/// \tparam GR The graph type. |
2721 | 2748 |
/// \tparam K The key type of the map (\c GR::Node, \c GR::Arc or |
... | ... |
@@ -2989,24 +3016,26 @@ |
2989 | 3016 |
Value value; |
2990 | 3017 |
}; |
2991 | 3018 |
} |
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 |
3010 | 3039 |
/// \c GR::Edge). |
3011 | 3040 |
/// \tparam V The value type of the map. It can be any comparable |
3012 | 3041 |
/// value type. |
... | ... |
@@ -3076,55 +3105,62 @@ |
3076 | 3105 |
} |
3077 | 3106 |
|
3078 | 3107 |
public: |
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 |
3086 | 3115 |
: public std::iterator<std::forward_iterator_tag, Value> { |
3087 | 3116 |
friend class IterableValueMap; |
3088 | 3117 |
private: |
3089 | 3118 |
ValueIterator(typename std::map<Value, Key>::const_iterator _it) |
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: |
3109 | 3145 |
typename std::map<Value, Key>::const_iterator it; |
3110 | 3146 |
}; |
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. |
3118 | 3154 |
ValueIterator beginValue() const { |
3119 | 3155 |
return ValueIterator(_first.begin()); |
3120 | 3156 |
} |
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. |
3128 | 3164 |
ValueIterator endValue() const { |
3129 | 3165 |
return ValueIterator(_first.end()); |
3130 | 3166 |
} |
0 comments (0 inline)