template class QPanda::WeightedGraph

#include <Graph.h>

template <typename T>
class WeightedGraph: public QPanda::Graph
{
public:
    // typedefs

    typedef WeightedGraph<T>* Ref;
    typedef std::unique_ptr<WeightedGraph<T>> uRef;
    typedef std::shared_ptr<WeightedGraph<T>> sRef;

    // construction

    WeightedGraph(
        uint32_t n,
        Type ty = Undirected
        );

    // methods

    void putEdge(
        uint32_t i,
        uint32_t j,
        T w
        );

    void setW(
        uint32_t i,
        uint32_t j,
        T w
        );

    T getW(
        uint32_t i,
        uint32_t j
        ) const;

    static bool ClassOf(const Graph* g);

    static uRef Create(
        uint32_t n,
        Type ty = Undirected
        );
};

// direct descendants

class ArchGraph;

Inherited Members

public:
    // typedefs

    typedef Graph* Ref;
    typedef std::unique_ptr<Graph> uRef;
    typedef std::shared_ptr<Graph> sRef;

    // enums

    enum Kind;
    enum Type;

    // methods

    uint32_t inDegree(uint32_t i) const;
    uint32_t outDegree(uint32_t i) const;
    uint32_t size() const;
    std::set<uint32_t>& succ(uint32_t i);
    const std::set<uint32_t>& c_succ(uint32_t i) const;
    std::set<uint32_t>& pred(uint32_t i);
    std::set<uint32_t> adj(uint32_t i) const;
    void putEdge(uint32_t i, uint32_t j);
    bool hasEdge(uint32_t i, uint32_t j) const;
    bool isWeighted() const;
    bool isArch() const;
    bool isDirectedGraph() const;
    std::string dotify(std::string name = "Dump") const;
    static bool ClassOf(const Graph* g);
    static uRef Create(uint32_t n, Type ty = Undirected);