.. index:: pair: class; QPanda::AbstractQuantumProgram .. _doxid-class_q_panda_1_1_abstract_quantum_program: class QPanda::AbstractQuantumProgram ==================================== .. toctree:: :hidden: Overview ~~~~~~~~ Quantum program basic abstract class. :ref:`More...` .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class AbstractQuantumProgram: public :ref:`QPanda::AbstractNodeManager` { public: // methods virtual void :ref:`clear`() = 0; virtual size_t :ref:`get_max_qubit_addr`() = 0; virtual size_t :ref:`get_used_qubits`(:ref:`QVec`&) = 0; virtual size_t :ref:`get_used_cbits`(std::vector<:ref:`ClassicalCondition`>&) = 0; virtual size_t :ref:`get_qgate_num`() = 0; virtual bool :ref:`is_measure_last_pos`() = 0; virtual std::map<:ref:`Qubit`*, bool> :ref:`get_measure_pos`() = 0; virtual std::vector`*, :ref:`ClassicalCondition`>> :ref:`get_measure_qubits_cbits`() = 0; }; // direct descendants class :ref:`OriginProgram`; class :ref:`QProg`; 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_program: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Quantum program basic abstract class. Methods ------- .. index:: pair: function; clear .. _doxid-class_q_panda_1_1_abstract_quantum_program_1a5f31f3aa64a849d6654eb8ee1f73d3ab: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void clear() = 0 Clear all node in current quantum program node. .. index:: pair: function; get_max_qubit_addr .. _doxid-class_q_panda_1_1_abstract_quantum_program_1a8bdeebab139384217702489f01a7920a: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t get_max_qubit_addr() = 0 Gets the maximum physical address of used qubits. .. rubric:: Returns: size_t maximum physical address .. index:: pair: function; get_used_qubits .. _doxid-class_q_panda_1_1_abstract_quantum_program_1abea5d2c41984ba3cf679325137b3067a: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t get_used_qubits(:ref:`QVec`&) = 0 Get the used qubits for current quantum program. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - :ref:`QVec ` - used qubits vector .. rubric:: Returns: size_t .. index:: pair: function; get_used_cbits .. _doxid-class_q_panda_1_1_abstract_quantum_program_1a8db1ec2607e05c8a11232a0c627572c9: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t get_used_cbits(std::vector<:ref:`ClassicalCondition`>&) = 0 Get the used classical bits for current quantum program. .. 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_program_1aa910c05e038c58904ef1a49635087622: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual size_t get_qgate_num() = 0 Get current quantum program qgate number. .. rubric:: Returns: size_t .. index:: pair: function; is_measure_last_pos .. _doxid-class_q_panda_1_1_abstract_quantum_program_1a1d8232f912af4b86cf1b1770fda0360e: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual bool is_measure_last_pos() = 0 Measure operation in the last position of the program. .. rubric:: Returns: bool .. index:: pair: function; get_measure_pos .. _doxid-class_q_panda_1_1_abstract_quantum_program_1ad25f4650c9ac5a30649f260c0ac43a8d: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual std::map<:ref:`Qubit`*, bool> get_measure_pos() = 0 Get Measure operation position of the program. .. rubric:: Returns: std::map .. index:: pair: function; get_measure_qubits_cbits .. _doxid-class_q_panda_1_1_abstract_quantum_program_1a76a02e81401bb45d83a365decfb584d5: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual std::vector`*, :ref:`ClassicalCondition`>> get_measure_qubits_cbits() = 0 Get Measure operation qubits and cbits vector. .. rubric:: Returns: std::vector>