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

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

#include <utility/pointer/owning_ptr.hh>

Classes

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
 

Typedefs

typedef LowMemGraph
< LowMemNode, LowMemEdge > 
utility::graph::DefaultLowMemGraph
 
typedef
utility::pointer::shared_ptr
< DefaultLowMemGraph > 
utility::graph::DefaultLowMemGraphOP
 
typedef
utility::pointer::shared_ptr
< DefaultLowMemGraph const > 
utility::graph::DefaultLowMemGraphCOP
 

Detailed Description

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

  1. Due to std::vector::resize(), all of the Edge* 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)