COIN-OR::LEMON - Graph Library

Changeset 736:2e20aad15754 in lemon-main


Ignore:
Timestamp:
08/23/09 11:10:40 (15 years ago)
Author:
Peter Kovacs <kpeter@…>
Branch:
default
Phase:
public
Message:

Add reserve functions to ListGraph? and SmartGraph? (#311)
ListDigraph? and SmartDigraph? already have such functions.

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • lemon/list_graph.h

    r735 r736  
    13121312    }
    13131313
     1314    /// Reserve memory for nodes.
     1315
     1316    /// Using this function, it is possible to avoid superfluous memory
     1317    /// allocation: if you know that the graph you want to build will
     1318    /// be large (e.g. it will contain millions of nodes and/or edges),
     1319    /// then it is worth reserving space for this amount before starting
     1320    /// to build the graph.
     1321    /// \sa reserveEdge()
     1322    void reserveNode(int n) { nodes.reserve(n); };
     1323
     1324    /// Reserve memory for edges.
     1325
     1326    /// Using this function, it is possible to avoid superfluous memory
     1327    /// allocation: if you know that the graph you want to build will
     1328    /// be large (e.g. it will contain millions of nodes and/or edges),
     1329    /// then it is worth reserving space for this amount before starting
     1330    /// to build the graph.
     1331    /// \sa reserveNode()
     1332    void reserveEdge(int m) { arcs.reserve(2 * m); };
     1333
    13141334    /// \brief Class to make a snapshot of the graph and restore
    13151335    /// it later.
  • lemon/smart_graph.h

    r735 r736  
    692692    }
    693693
     694    /// Reserve memory for nodes.
     695
     696    /// Using this function, it is possible to avoid superfluous memory
     697    /// allocation: if you know that the graph you want to build will
     698    /// be large (e.g. it will contain millions of nodes and/or edges),
     699    /// then it is worth reserving space for this amount before starting
     700    /// to build the graph.
     701    /// \sa reserveEdge()
     702    void reserveNode(int n) { nodes.reserve(n); };
     703
     704    /// Reserve memory for edges.
     705
     706    /// Using this function, it is possible to avoid superfluous memory
     707    /// allocation: if you know that the graph you want to build will
     708    /// be large (e.g. it will contain millions of nodes and/or edges),
     709    /// then it is worth reserving space for this amount before starting
     710    /// to build the graph.
     711    /// \sa reserveNode()
     712    void reserveEdge(int m) { arcs.reserve(2 * m); };
     713
    694714  public:
    695715
  • test/digraph_test.cc

    r440 r736  
    3636  checkGraphArcList(G, 0);
    3737
     38  G.reserveNode(3);
     39  G.reserveArc(4);
     40
    3841  Node
    3942    n1 = G.addNode(),
  • test/graph_test.cc

    r440 r736  
    3939  checkGraphArcList(G, 0);
    4040
     41  G.reserveNode(3);
     42  G.reserveEdge(3);
     43
    4144  Node
    4245    n1 = G.addNode(),
Note: See TracChangeset for help on using the changeset viewer.