我正在尝试优化一些代码,因为我必须多次将相同的 QPixmap 绘制到更大的 QPixmap 上。由于在我自己的方法中按值传递 QPixmap 会在每次调用时创建拷贝,因此我认为我可以通过使用指向 QPixmap 的指针来节省一些时间。但是,我的工作似乎一直在进行中。我认为这是因为调用 QPainter::drawPixmap(..., const QPixmap&, ...) 创建了它的拷贝。
QPixmap *pixmap = new QPixmap(10,10);
painter.drawPixmap(0,0, *pixmap);
此示例中是否正在创建拷贝?
如果是这样,我该如何优化将许 multimap 像绘制到另一个图像上?
我已经在这里阅读了这个问答:Does dereferencing a pointer make a copy of it?但是对于我的具体情况,我没有一个明确的答案。
最佳答案
没有。 drawPixmap
函数采用 const
对 pixmap
的引用,因此不会进行复制。这是 QPainter 成员函数的原型(prototype):
void drawPixmap ( int x, int y, const QPixmap & pixmap )
关于c++ - 在此示例中取消引用指针会创建一个拷贝吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15215138/