.. index:: pair: class; QPanda::AbstractQuantumCircuit .. _doxid-class_q_panda_1_1_abstract_quantum_circuit: class QPanda::AbstractQuantumCircuit ==================================== .. toctree:: :hidden: Overview ~~~~~~~~ Quantum circuit basic abstract class. :ref:`More...` .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class AbstractQuantumCircuit: public :ref:`QPanda::AbstractNodeManager` { public: // methods virtual bool :ref:`isDagger`() const = 0; virtual bool :ref:`getControlVector`(:ref:`QVec`&) = 0; virtual void :ref:`setDagger`(bool isDagger) = 0; virtual void :ref:`setControl`(:ref:`QVec`) = 0; virtual void :ref:`clearControl`() = 0; virtual size_t :ref:`get_used_qubits`(:ref:`QVec`&) const = 0; virtual size_t :ref:`get_qgate_num`() = 0; }; // direct descendants class :ref:`OriginCircuit`; class :ref:`QCircuit`; Inherited Members ----------------- .. ref-code-block:: cpp :class: doxyrest-overview-inherited-code-block public: // methods virtual :ref:`NodeIter` :ref:`getFirstNodeIter`() = 0; virtual :ref:`NodeIter` :ref:`getLastNodeIter`() = 0; virtual :ref:`NodeIter` :ref:`getEndNodeIter`() = 0; virtual :ref:`NodeIter` :ref:`getHeadNodeIter`() = 0; virtual :ref:`NodeIter` :ref:`insertQNode`(const :ref:`NodeIter`&, std::shared_ptr<:ref:`QNode`>) = 0; virtual :ref:`NodeIter` :ref:`deleteQNode`(:ref:`NodeIter`&) = 0; virtual void :ref:`pushBackNode`(std::shared_ptr<:ref:`QNode`>) = 0; .. _details-class_q_panda_1_1_abstract_quantum_circuit: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Quantum circuit basic abstract class. Methods ------- .. index:: pair: function; isDagger .. _doxid-class_q_panda_1_1_abstract_quantum_circuit_1a9901ebf6ad22292cba7f9911ec3b600f: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual bool isDagger() const = 0 Judge current quantum circuit is dagger. .. rubric:: Returns: bool .. index:: pair: function; getControlVector .. _doxid-class_q_panda_1_1_abstract_quantum_circuit_1ac4e834af252b8cefb1a9de6ae8781a7d: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual bool getControlVector(:ref:`QVec`&) = 0 Get control vector fron current quantum circuit node. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - QVec& - qubits vector .. rubric:: Returns: bool .. rubric:: See also: :ref:`QVec ` .. index:: pair: function; setDagger .. _doxid-class_q_panda_1_1_abstract_quantum_circuit_1ad25e733d7f1a6bb837ca764135db1c8b: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void setDagger(bool isDagger) = 0 Set dagger to current quantum circuit. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - bool - is dagger .. index:: pair: function; setControl .. _doxid-class_q_panda_1_1_abstract_quantum_circuit_1a0d810051304b282991d6fd1b87bb437d: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void setControl(:ref:`QVec`) = 0 Set control qubits to current quantum circuit. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - :ref:`QVec ` - control qubits vector .. rubric:: See also: :ref:`QVec ` .. index:: pair: function; clearControl .. _doxid-class_q_panda_1_1_abstract_quantum_circuit_1a3e61c68f5be51f3716506b42e6cf2359: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void clearControl() = 0 Clear the control qubits for current quantum circuit. .. rubric:: See also: :ref:`QVec ` .. index:: pair: function; get_used_qubits .. _doxid-class_q_panda_1_1_abstract_quantum_circuit_1a5b7386321461dff5dcee0ae6dcd4812a: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t get_used_qubits(:ref:`QVec`&) const = 0 Get the used qubits for current quantum circuit. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - :ref:`QVec ` - used qubits vector .. rubric:: Returns: size_t .. index:: pair: function; get_qgate_num .. _doxid-class_q_panda_1_1_abstract_quantum_circuit_1ad054a6feb7cca5f960df1420f0b9a629: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t get_qgate_num() = 0 Get current quantum circuit qgate number. .. rubric:: Returns: size_t