Changeset 167:d57ae6f0a335 in lemon-1.2
- Timestamp:
- 06/14/08 19:34:15 (16 years ago)
- Branch:
- default
- Phase:
- public
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
lemon/kruskal.h
r136 r167 230 230 231 231 static Value kruskal(const Graph& graph, const In& in, Out& out) { 232 typedef StoreBoolMap<typename RemoveConst<Out>::type> Map;232 typedef LoggerBoolMap<typename RemoveConst<Out>::type> Map; 233 233 Map map(out); 234 234 return _kruskal_bits::kruskal(graph, in, map); -
lemon/maps.h
r159 r167 1701 1701 /// In these cases it is a natural request to store each \c true 1702 1702 /// assigned elements (in order of the assignment), which can be 1703 /// easily done with StoreBoolMap.1704 /// 1705 /// The simplest way of using this map is through the storeBoolMap()1703 /// easily done with LoggerBoolMap. 1704 /// 1705 /// The simplest way of using this map is through the loggerBoolMap() 1706 1706 /// function. 1707 1707 /// … … 1718 1718 typename Ke=typename _maps_bits::IteratorTraits<It>::Value> 1719 1719 #endif 1720 class StoreBoolMap {1720 class LoggerBoolMap { 1721 1721 public: 1722 1722 typedef It Iterator; … … 1726 1726 1727 1727 /// Constructor 1728 StoreBoolMap(Iterator it)1728 LoggerBoolMap(Iterator it) 1729 1729 : _begin(it), _end(it) {} 1730 1730 … … 1751 1751 }; 1752 1752 1753 /// Returns a \ref StoreBoolMap class1754 1755 /// This function just returns a \ref StoreBoolMap class.1753 /// Returns a \ref LoggerBoolMap class 1754 1755 /// This function just returns a \ref LoggerBoolMap class. 1756 1756 /// 1757 1757 /// The most important usage of it is storing certain nodes or arcs … … 1761 1761 /// \code 1762 1762 /// std::vector<Node> v; 1763 /// dfs(g,s).processedMap( storeBoolMap(std::back_inserter(v))).run();1763 /// dfs(g,s).processedMap(loggerBoolMap(std::back_inserter(v))).run(); 1764 1764 /// \endcode 1765 1765 /// \code 1766 1766 /// std::vector<Node> v(countNodes(g)); 1767 /// dfs(g,s).processedMap( storeBoolMap(v.begin())).run();1767 /// dfs(g,s).processedMap(loggerBoolMap(v.begin())).run(); 1768 1768 /// \endcode 1769 1769 /// … … 1771 1771 /// for the elements or the iterator should be an inserter iterator. 1772 1772 /// 1773 /// \note StoreBoolMap is just \ref concepts::WriteMap "writable", so1773 /// \note LoggerBoolMap is just \ref concepts::WriteMap "writable", so 1774 1774 /// it cannot be used when a readable map is needed, for example as 1775 /// \c ReachedMap for Bfs, Dfs andDijkstra algorithms.1776 /// 1777 /// \relates StoreBoolMap1775 /// \c ReachedMap for \ref Bfs, \ref Dfs and \ref Dijkstra algorithms. 1776 /// 1777 /// \relates LoggerBoolMap 1778 1778 template<typename Iterator> 1779 inline StoreBoolMap<Iterator> storeBoolMap(Iterator it) {1780 return StoreBoolMap<Iterator>(it);1779 inline LoggerBoolMap<Iterator> loggerBoolMap(Iterator it) { 1780 return LoggerBoolMap<Iterator>(it); 1781 1781 } 1782 1782 -
test/maps_test.cc
r159 r167 306 306 } 307 307 308 // StoreBoolMap308 // LoggerBoolMap 309 309 { 310 310 typedef std::vector<int> vec; 311 311 vec v1; 312 312 vec v2(10); 313 StoreBoolMap<std::back_insert_iterator<vec> > map1(std::back_inserter(v1));314 StoreBoolMap<vec::iterator> map2(v2.begin());313 LoggerBoolMap<std::back_insert_iterator<vec> > map1(std::back_inserter(v1)); 314 LoggerBoolMap<vec::iterator> map2(v2.begin()); 315 315 map1.set(10, false); 316 316 map1.set(20, true); map2.set(20, true); … … 320 320 check(v1.size() == 3 && v2.size() == 10 && 321 321 v1[0]==20 && v1[1]==50 && v1[2]==60 && v2[0]==20 && v2[1]==50 && v2[2]==60, 322 "Something is wrong with StoreBoolMap");322 "Something is wrong with LoggerBoolMap"); 323 323 324 324 int i = 0; 325 for ( StoreBoolMap<vec::iterator>::Iterator it = map2.begin();325 for ( LoggerBoolMap<vec::iterator>::Iterator it = map2.begin(); 326 326 it != map2.end(); ++it ) 327 check(v1[i++] == *it, "Something is wrong with StoreBoolMap");327 check(v1[i++] == *it, "Something is wrong with LoggerBoolMap"); 328 328 } 329 329
Note: See TracChangeset
for help on using the changeset viewer.