0
5
0
| ... | ... |
@@ -47,6 +47,8 @@ |
| 47 | 47 |
|
| 48 | 48 |
typedef typename Parent::Key Key; |
| 49 | 49 |
typedef typename Parent::Value Value; |
| 50 |
typedef typename Parent::Reference Reference; |
|
| 51 |
typedef typename Parent::ConstReference ConstReference; |
|
| 50 | 52 |
|
| 51 | 53 |
class MapIt; |
| 52 | 54 |
class ConstMapIt; |
| ... | ... |
@@ -187,6 +189,8 @@ |
| 187 | 189 |
|
| 188 | 190 |
typedef typename Parent::Key Key; |
| 189 | 191 |
typedef typename Parent::Value Value; |
| 192 |
typedef typename Parent::Reference Reference; |
|
| 193 |
typedef typename Parent::ConstReference ConstReference; |
|
| 190 | 194 |
|
| 191 | 195 |
class MapIt; |
| 192 | 196 |
class ConstMapIt; |
| ... | ... |
@@ -421,12 +421,11 @@ |
| 421 | 421 |
/// Gives back the opposite node on the given arc. |
| 422 | 422 |
Node oppositeNode(const Node&, const Arc&) const { return INVALID; }
|
| 423 | 423 |
|
| 424 |
/// \brief |
|
| 424 |
/// \brief Reference map of the nodes to type \c T. |
|
| 425 | 425 |
/// |
| 426 |
/// ReadWrite map of the nodes to type \c T. |
|
| 427 |
/// \sa Reference |
|
| 426 |
/// Reference map of the nodes to type \c T. |
|
| 428 | 427 |
template<class T> |
| 429 |
class NodeMap : public |
|
| 428 |
class NodeMap : public ReferenceMap<Node, T, T&, const T&> {
|
|
| 430 | 429 |
public: |
| 431 | 430 |
|
| 432 | 431 |
///\e |
| ... | ... |
@@ -436,7 +435,8 @@ |
| 436 | 435 |
|
| 437 | 436 |
private: |
| 438 | 437 |
///Copy constructor |
| 439 |
NodeMap(const NodeMap& nm) : |
|
| 438 |
NodeMap(const NodeMap& nm) : |
|
| 439 |
ReferenceMap<Node, T, T&, const T&>(nm) { }
|
|
| 440 | 440 |
///Assignment operator |
| 441 | 441 |
template <typename CMap> |
| 442 | 442 |
NodeMap& operator=(const CMap&) {
|
| ... | ... |
@@ -445,12 +445,11 @@ |
| 445 | 445 |
} |
| 446 | 446 |
}; |
| 447 | 447 |
|
| 448 |
/// \brief |
|
| 448 |
/// \brief Reference map of the arcs to type \c T. |
|
| 449 | 449 |
/// |
| 450 | 450 |
/// Reference map of the arcs to type \c T. |
| 451 |
/// \sa Reference |
|
| 452 | 451 |
template<class T> |
| 453 |
class ArcMap : public |
|
| 452 |
class ArcMap : public ReferenceMap<Arc, T, T&, const T&> {
|
|
| 454 | 453 |
public: |
| 455 | 454 |
|
| 456 | 455 |
///\e |
| ... | ... |
@@ -459,7 +458,8 @@ |
| 459 | 458 |
ArcMap(const Digraph&, T) { }
|
| 460 | 459 |
private: |
| 461 | 460 |
///Copy constructor |
| 462 |
ArcMap(const ArcMap& em) : |
|
| 461 |
ArcMap(const ArcMap& em) : |
|
| 462 |
ReferenceMap<Arc, T, T&, const T&>(em) { }
|
|
| 463 | 463 |
///Assignment operator |
| 464 | 464 |
template <typename CMap> |
| 465 | 465 |
ArcMap& operator=(const CMap&) {
|
| ... | ... |
@@ -471,6 +471,7 @@ |
| 471 | 471 |
template <typename _Digraph> |
| 472 | 472 |
struct Constraints {
|
| 473 | 473 |
void constraints() {
|
| 474 |
checkConcept<BaseDigraphComponent, _Digraph>(); |
|
| 474 | 475 |
checkConcept<IterableDigraphComponent<>, _Digraph>(); |
| 475 | 476 |
checkConcept<IDableDigraphComponent<>, _Digraph>(); |
| 476 | 477 |
checkConcept<MappableDigraphComponent<>, _Digraph>(); |
| ... | ... |
@@ -497,12 +497,11 @@ |
| 497 | 497 |
InArcIt& operator++() { return *this; }
|
| 498 | 498 |
}; |
| 499 | 499 |
|
| 500 |
/// \brief |
|
| 500 |
/// \brief Reference map of the nodes to type \c T. |
|
| 501 | 501 |
/// |
| 502 |
/// ReadWrite map of the nodes to type \c T. |
|
| 503 |
/// \sa Reference |
|
| 502 |
/// Reference map of the nodes to type \c T. |
|
| 504 | 503 |
template<class T> |
| 505 |
class NodeMap : public |
|
| 504 |
class NodeMap : public ReferenceMap<Node, T, T&, const T&> |
|
| 506 | 505 |
{
|
| 507 | 506 |
public: |
| 508 | 507 |
|
| ... | ... |
@@ -513,7 +512,8 @@ |
| 513 | 512 |
|
| 514 | 513 |
private: |
| 515 | 514 |
///Copy constructor |
| 516 |
NodeMap(const NodeMap& nm) : |
|
| 515 |
NodeMap(const NodeMap& nm) : |
|
| 516 |
ReferenceMap<Node, T, T&, const T&>(nm) { }
|
|
| 517 | 517 |
///Assignment operator |
| 518 | 518 |
template <typename CMap> |
| 519 | 519 |
NodeMap& operator=(const CMap&) {
|
| ... | ... |
@@ -522,12 +522,11 @@ |
| 522 | 522 |
} |
| 523 | 523 |
}; |
| 524 | 524 |
|
| 525 |
/// \brief |
|
| 525 |
/// \brief Reference map of the arcs to type \c T. |
|
| 526 | 526 |
/// |
| 527 |
/// Reference map of the directed arcs to type \c T. |
|
| 528 |
/// \sa Reference |
|
| 527 |
/// Reference map of the arcs to type \c T. |
|
| 529 | 528 |
template<class T> |
| 530 |
class ArcMap : public |
|
| 529 |
class ArcMap : public ReferenceMap<Arc, T, T&, const T&> |
|
| 531 | 530 |
{
|
| 532 | 531 |
public: |
| 533 | 532 |
|
| ... | ... |
@@ -537,7 +536,8 @@ |
| 537 | 536 |
ArcMap(const Graph&, T) { }
|
| 538 | 537 |
private: |
| 539 | 538 |
///Copy constructor |
| 540 |
ArcMap(const ArcMap& em) : |
|
| 539 |
ArcMap(const ArcMap& em) : |
|
| 540 |
ReferenceMap<Arc, T, T&, const T&>(em) { }
|
|
| 541 | 541 |
///Assignment operator |
| 542 | 542 |
template <typename CMap> |
| 543 | 543 |
ArcMap& operator=(const CMap&) {
|
| ... | ... |
@@ -546,12 +546,11 @@ |
| 546 | 546 |
} |
| 547 | 547 |
}; |
| 548 | 548 |
|
| 549 |
/// |
|
| 549 |
/// Reference map of the edges to type \c T. |
|
| 550 | 550 |
|
| 551 |
/// Reference map of the arcs to type \c T. |
|
| 552 |
/// \sa Reference |
|
| 551 |
/// Reference map of the edges to type \c T. |
|
| 553 | 552 |
template<class T> |
| 554 |
class EdgeMap : public |
|
| 553 |
class EdgeMap : public ReferenceMap<Edge, T, T&, const T&> |
|
| 555 | 554 |
{
|
| 556 | 555 |
public: |
| 557 | 556 |
|
| ... | ... |
@@ -561,7 +560,8 @@ |
| 561 | 560 |
EdgeMap(const Graph&, T) { }
|
| 562 | 561 |
private: |
| 563 | 562 |
///Copy constructor |
| 564 |
EdgeMap(const EdgeMap& em) : |
|
| 563 |
EdgeMap(const EdgeMap& em) : |
|
| 564 |
ReferenceMap<Edge, T, T&, const T&>(em) {}
|
|
| 565 | 565 |
///Assignment operator |
| 566 | 566 |
template <typename CMap> |
| 567 | 567 |
EdgeMap& operator=(const CMap&) {
|
| ... | ... |
@@ -748,6 +748,7 @@ |
| 748 | 748 |
template <typename _Graph> |
| 749 | 749 |
struct Constraints {
|
| 750 | 750 |
void constraints() {
|
| 751 |
checkConcept<BaseGraphComponent, _Graph>(); |
|
| 751 | 752 |
checkConcept<IterableGraphComponent<>, _Graph>(); |
| 752 | 753 |
checkConcept<IDableGraphComponent<>, _Graph>(); |
| 753 | 754 |
checkConcept<MappableGraphComponent<>, _Graph>(); |
| ... | ... |
@@ -988,8 +988,9 @@ |
| 988 | 988 |
/// This class describes the concept of standard graph maps, i.e. |
| 989 | 989 |
/// the \c NodeMap, \c ArcMap and \c EdgeMap subtypes of digraph and |
| 990 | 990 |
/// graph types, which can be used for associating data to graph items. |
| 991 |
/// The standard graph maps must conform to the ReferenceMap concept. |
|
| 991 | 992 |
template <typename GR, typename K, typename V> |
| 992 |
class GraphMap : public |
|
| 993 |
class GraphMap : public ReferenceMap<K, V, V&, const V&> {
|
|
| 993 | 994 |
public: |
| 994 | 995 |
|
| 995 | 996 |
typedef ReadWriteMap<K, V> Parent; |
| ... | ... |
@@ -1000,6 +1001,13 @@ |
| 1000 | 1001 |
typedef K Key; |
| 1001 | 1002 |
/// The value type of the map. |
| 1002 | 1003 |
typedef V Value; |
| 1004 |
/// The reference type of the map. |
|
| 1005 |
typedef Value& Reference; |
|
| 1006 |
/// The const reference type of the map. |
|
| 1007 |
typedef const Value& ConstReference; |
|
| 1008 |
|
|
| 1009 |
// The reference map tag. |
|
| 1010 |
typedef True ReferenceMapTag; |
|
| 1003 | 1011 |
|
| 1004 | 1012 |
/// \brief Construct a new map. |
| 1005 | 1013 |
/// |
| ... | ... |
@@ -1031,7 +1039,8 @@ |
| 1031 | 1039 |
template<typename _Map> |
| 1032 | 1040 |
struct Constraints {
|
| 1033 | 1041 |
void constraints() {
|
| 1034 |
checkConcept |
|
| 1042 |
checkConcept |
|
| 1043 |
<ReferenceMap<Key, Value, Value&, const Value&>, _Map>(); |
|
| 1035 | 1044 |
_Map m1(g); |
| 1036 | 1045 |
_Map m2(g,t); |
| 1037 | 1046 |
|
| ... | ... |
@@ -1073,6 +1082,7 @@ |
| 1073 | 1082 |
/// \brief Standard graph map for the nodes. |
| 1074 | 1083 |
/// |
| 1075 | 1084 |
/// Standard graph map for the nodes. |
| 1085 |
/// It conforms to the ReferenceMap concept. |
|
| 1076 | 1086 |
template <typename V> |
| 1077 | 1087 |
class NodeMap : public GraphMap<MappableDigraphComponent, Node, V> {
|
| 1078 | 1088 |
public: |
| ... | ... |
@@ -1110,6 +1120,7 @@ |
| 1110 | 1120 |
/// \brief Standard graph map for the arcs. |
| 1111 | 1121 |
/// |
| 1112 | 1122 |
/// Standard graph map for the arcs. |
| 1123 |
/// It conforms to the ReferenceMap concept. |
|
| 1113 | 1124 |
template <typename V> |
| 1114 | 1125 |
class ArcMap : public GraphMap<MappableDigraphComponent, Arc, V> {
|
| 1115 | 1126 |
public: |
| ... | ... |
@@ -1207,6 +1218,7 @@ |
| 1207 | 1218 |
/// \brief Standard graph map for the edges. |
| 1208 | 1219 |
/// |
| 1209 | 1220 |
/// Standard graph map for the edges. |
| 1221 |
/// It conforms to the ReferenceMap concept. |
|
| 1210 | 1222 |
template <typename V> |
| 1211 | 1223 |
class EdgeMap : public GraphMap<MappableGraphComponent, Edge, V> {
|
| 1212 | 1224 |
public: |
0 comments (0 inline)