Rosetta  2020.46
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Namespaces
LowMemGraph.hh File Reference

A lower memory version of utility::graph::Graph with three key limitations. More...

#include <utility/graph/LowMemGraph.fwd.hh>
#include <utility/pointer/memory.hh>
#include <platform/types.hh>
#include <utility/VirtualBase.hh>
#include <utility/backtrace.hh>
#include <utility/vector1.hh>
#include <vector>

Classes

class  utility::graph::LowMemEdgeListIter
 Non-const iterator for edges. More...
 
class  utility::graph::LowMemEdgeListConstIter
 Const iterator for edges. More...
 
class  utility::graph::LowMemNode
 An Node class for LowMemGraph. Will often be overriden Be careful with this class! It doesn't use actual virtual functions. Never do this: LowMemNodeOP op = MyDerivedNodeOP() Instead, if you wish to use an owning pointer, you must do this: MyDerivedNodeOP op = MyDerivedNodeOP() More...
 
class  utility::graph::LowMemEdge
 An Edge class for LowMemGraph. Will often be overriden. Be careful with this class! It doesn't use actual virtual functions. Never do this: LowMemEdgeOP op = MyDerivedEdgeOP() Instead, if you wish to use an owning pointer, you must do this: MyDerivedEdgeOP op = MyDerivedEdgeOP() More...
 
class  utility::graph::LowMemGraphBase
 Pure virtual baseclass that was required to avoid templating Edges and Nodes. More...
 
class  utility::graph::LowMemGraph< _Node, _Edge >
 A graph with low memory use and constant time edge insertion. Extensible. For general use, use utility::graph::DefaultLowMemGraph. More...
 

Namespaces

 utility
 unresizable vector whose size is known at compile time, which may be allocated on the stack, and which indexes from 0.
 
 utility::graph
 

Detailed Description

A lower memory version of utility::graph::Graph with three key limitations.

  1. Due to std::vector::resize(), all of the LMEdge* can go invalid any time you call add_edge().
  2. This doesn't have constant time deletion (a definite design goal for utility::graph::Graph)
  3. Deleting an element doesn't actually delete it from memory
    Author
    Brian Coventry (bcov@.nosp@m.uw.e.nosp@m.du)