SNAP Library 2.2, Developer Reference  2014-03-11 19:15:55
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
TUNGraph::TEdgeI Class Reference

Edge iterator. Only forward iteration (operator++) is supported. More...

#include <graph.h>

Collaboration diagram for TUNGraph::TEdgeI:

List of all members.

Public Member Functions

 TEdgeI ()
 TEdgeI (const TNodeI &NodeI, const TNodeI &EndNodeI, const int &EdgeN=0)
 TEdgeI (const TEdgeI &EdgeI)
TEdgeIoperator= (const TEdgeI &EdgeI)
TEdgeIoperator++ (int)
 Increment iterator.
bool operator< (const TEdgeI &EdgeI) const
bool operator== (const TEdgeI &EdgeI) const
int GetId () const
 Returns edge ID. Always returns -1 since only edges in multigraphs have explicit IDs.
int GetSrcNId () const
 Returns the source of the edge. Since the graph is undirected, this is the node with a smaller ID of the edge endpoints.
int GetDstNId () const
 Returns the destination of the edge. Since the graph is undirected, this is the node with a greater ID of the edge endpoints.

Private Attributes

TNodeI CurNode
TNodeI EndNode
int CurEdge

Friends

class TUNGraph

Detailed Description

Edge iterator. Only forward iteration (operator++) is supported.

Definition at line 111 of file graph.h.


Constructor & Destructor Documentation

Definition at line 116 of file graph.h.

: CurNode(), EndNode(), CurEdge(0) { }
TUNGraph::TEdgeI::TEdgeI ( const TNodeI NodeI,
const TNodeI EndNodeI,
const int &  EdgeN = 0 
) [inline]

Definition at line 117 of file graph.h.

: CurNode(NodeI), EndNode(EndNodeI), CurEdge(EdgeN) { }
TUNGraph::TEdgeI::TEdgeI ( const TEdgeI EdgeI) [inline]

Definition at line 118 of file graph.h.

: CurNode(EdgeI.CurNode), EndNode(EdgeI.EndNode), CurEdge(EdgeI.CurEdge) { }

Member Function Documentation

int TUNGraph::TEdgeI::GetDstNId ( ) const [inline]

Returns the destination of the edge. Since the graph is undirected, this is the node with a greater ID of the edge endpoints.

Definition at line 129 of file graph.h.

References CurEdge, CurNode, and TUNGraph::TNodeI::GetOutNId().

Referenced by TUNGraph::AddEdge(), and operator++().

{ return CurNode.GetOutNId(CurEdge); }

Here is the call graph for this function:

Here is the caller graph for this function:

int TUNGraph::TEdgeI::GetId ( ) const [inline]

Returns edge ID. Always returns -1 since only edges in multigraphs have explicit IDs.

Definition at line 125 of file graph.h.

{ return -1; }
int TUNGraph::TEdgeI::GetSrcNId ( ) const [inline]

Returns the source of the edge. Since the graph is undirected, this is the node with a smaller ID of the edge endpoints.

Definition at line 127 of file graph.h.

References CurNode, and TUNGraph::TNodeI::GetId().

Referenced by TUNGraph::AddEdge(), and operator++().

{ return CurNode.GetId(); }

Here is the call graph for this function:

Here is the caller graph for this function:

TEdgeI& TUNGraph::TEdgeI::operator++ ( int  ) [inline]

Increment iterator.

Definition at line 121 of file graph.h.

References CurEdge, CurNode, EndNode, GetDstNId(), TUNGraph::TNodeI::GetOutDeg(), and GetSrcNId().

{ do { CurEdge++; if (CurEdge >= CurNode.GetOutDeg()) { CurEdge=0; CurNode++; while (CurNode < EndNode && CurNode.GetOutDeg()==0) { CurNode++; } } } while (CurNode < EndNode && GetSrcNId()>GetDstNId()); return *this; }

Here is the call graph for this function:

bool TUNGraph::TEdgeI::operator< ( const TEdgeI EdgeI) const [inline]

Definition at line 122 of file graph.h.

References CurEdge, and CurNode.

{ return CurNode<EdgeI.CurNode || (CurNode==EdgeI.CurNode && CurEdge<EdgeI.CurEdge); }
TEdgeI& TUNGraph::TEdgeI::operator= ( const TEdgeI EdgeI) [inline]

Definition at line 119 of file graph.h.

References CurEdge, CurNode, and EndNode.

{ if (this!=&EdgeI) { CurNode=EdgeI.CurNode; EndNode=EdgeI.EndNode; CurEdge=EdgeI.CurEdge; } return *this; }
bool TUNGraph::TEdgeI::operator== ( const TEdgeI EdgeI) const [inline]

Definition at line 123 of file graph.h.

References CurEdge, and CurNode.

{ return CurNode == EdgeI.CurNode && CurEdge == EdgeI.CurEdge; }

Friends And Related Function Documentation

friend class TUNGraph [friend]

Definition at line 130 of file graph.h.


Member Data Documentation

Definition at line 114 of file graph.h.

Referenced by GetDstNId(), operator++(), operator<(), operator=(), and operator==().

Definition at line 113 of file graph.h.

Referenced by GetDstNId(), GetSrcNId(), operator++(), operator<(), operator=(), and operator==().

Definition at line 113 of file graph.h.

Referenced by operator++(), and operator=().


The documentation for this class was generated from the following file: