class QPanda::AbstractNodeManager

Overview

Quantum node manager basic abstract class. More…

#include <QNode.h>

class AbstractNodeManager
{
public:
    // methods

    virtual NodeIter getFirstNodeIter() = 0;
    virtual NodeIter getLastNodeIter() = 0;
    virtual NodeIter getEndNodeIter() = 0;
    virtual NodeIter getHeadNodeIter() = 0;
    virtual NodeIter insertQNode(const NodeIter&, std::shared_ptr<QNode>) = 0;
    virtual NodeIter deleteQNode(NodeIter&) = 0;
    virtual void pushBackNode(std::shared_ptr<QNode>) = 0;
};

// direct descendants

class AbstractQuantumCircuit;
class AbstractQuantumProgram;

Detailed Documentation

Quantum node manager basic abstract class.

Methods

virtual NodeIter getFirstNodeIter() = 0

Get the first NodeIter.

Returns:

NodeIter

virtual NodeIter getLastNodeIter() = 0

Get the last NodeIter.

Returns:

NodeIter

virtual NodeIter getEndNodeIter() = 0

Get the end NodeIter.

Returns:

NodeIter

virtual NodeIter getHeadNodeIter() = 0

Get the head NodeIter.

Returns:

NodeIter

virtual NodeIter insertQNode(const NodeIter&, std::shared_ptr<QNode>) = 0

Insert a new QNode at the location specified by NodeIter.

Parameters:

NodeIter&

specified location

std::shared_ptr<QNode>

Inserted QNode

Returns:

NodeIter

virtual NodeIter deleteQNode(NodeIter&) = 0

Delete a QNode at the location specified by NodeIter.

Parameters:

NodeIter&

specified location

Returns:

NodeIter Deleted NodeIter

virtual void pushBackNode(std::shared_ptr<QNode>) = 0

Insert a new Node at the end of current quantum circuit.

Parameters:

QNode*

quantum node

Returns:

void

See also:

QNode