用I门填充QProg
接口 fill_qprog_by_I
实现用I门填充QProg(量子程序)的功能。
实例
#include "QPanda.h"
USING_QPANDA
int main(void)
{
auto qvm = initQuantumMachine(QMachineType::CPU);
auto q = qvm->qAllocMany(4);
auto c = qvm->cAllocMany(4);
QCircuit cir;
QProg prog;
// 构建量子程序
cir << CNOT(q[2], q[3])
<< CU(1, 2, 3, 4, q[1], q[0])
<< (H(q[1]))
<< X(q[2])
<< RZ(q[1], PI / 2)
<< Y(q[2])
<< (CR(q[0], q[3], PI / 2))
<< (S(q[2]))
<< S(q[1])
<< RZ(q[1], PI / 2)
<< Y(q[0])
<< SWAP(q[3], q[1]);
prog << cir << MeasureAll(q, c);
// 输出原量子程序
cout << "The source QProg:" << endl;
cout << prog << endl;
// 量子程序填充 I 门
auto filled_prog = fill_qprog_by_I(prog);
// 输出填充 I 门的量子程序
cout << "The filled QProg:" << endl;
cout << filled_prog << endl;
destroyQuantumMachine(qvm);
return 0;
}
以上示例程序演示了 fill_qprog_by_I
接口的使用方法,我们可以看到只需要传入一个QProg类型的参数即可,该接口返回一个填充后的新QProg,输入QProg保持不变。
以上示例程序的字符画展示输出结果如下: