- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我发现自己在连接 QLinkedLists
很多,所以我开始担心 Qt 的效率 QLinkedList::operator+( const QLinkedList<T> &other ) const
我试图查找 operator+
的源代码,但我无法理解它。我已在 a different question 中寻求帮助.
正在使用 operator+()
运算符连接两个 QLinkedList
同类型的效率高吗?实现是否只是让迭代器从第一个列表跳到第二个列表,所以基本上没有调用 operator+()?
的惩罚
最佳答案
这是我发现的:
template <typename T>
QLinkedList<T> QLinkedList<T>::operator+(const QLinkedList<T> &l) const
{
QLinkedList<T> n = *this;
n += l;
return n;
}
因此它复制了整个列表,使用运算符+=() 并返回新列表。对于 const 方法,它非常简单明了。
但我确实有顾虑:
如果您尝试合并 大型列表...我个人会改用 std::list。换句话说,在很多情况下,您不需要保留两个列表(子集)的拷贝,这就是惩罚所在。
QList a, b, c;
// ... etc.. assumes a & b grow to great sizes
c = a + b;
从上面的例子来看,如果你需要保留 a & b,那么从子集创建一个新列表显然是一个必要的成本。但是,如果在创建列表 c 后不需要 a & b ...那么使用 operator+ 并不是最佳选择。当然 - 对于非常小的列表,这都是微不足道的。
std::list 容器即 similar to QLinkedList .
对于 std::list,我会使用类似 splice to merge two lists together 的东西.我找不到 QLinkedList 的类似内容,但正如我已经说过的,我确实倾向于在我自己的代码中使用 STL 容器。
关于c++ - QLinkedList算子+效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17240824/
我关注了这个:How can I enable Flutter/Dart language experiments? 但是,传播运算符仍然对我不起作用。 最佳答案 您需要从终端运行 flutter u
在各种场合我都希望收到一个 Rx Replay 缓冲传入通知的运算符,在第一次订阅时同步重放其缓冲区,然后停止缓冲。此轻量级 Replay运营商应该只能为一个用户提供服务。可以找到此类运算符的一个用例
var items = []; var index = 0; var value = items[index]; // returns invalid value error, understood!
我想在文本中找到笔划的方向。 Sobel 算子如何用于此目的? 这张图显示的是dp,也就是梯度方向。我想知道如何应用 Sobel 运算符找到要选择的像素,从 p 到 q,沿着路径 sp,到找到边缘上的
我正在尝试在水平和垂直方向上实现 sobel 运算符。但不知何故我得到了反向输出。我在下面附上的代码。对于水平蒙版 char mask [3][3]= {{-1,-2,-1},{0,0,0},{1,
我在使用 Sobel 算子进行边缘检测时遇到问题:它会产生太多假边缘,效果如下图所示。我正在使用 3x3 sobel 运算符 - 首先提取垂直然后水平,最终输出是每个滤波器输出的幅度。合成图像的边
我很难理解 &^ and &^= operators 是什么在围棋中的意思。我无法在文档(说明操作符有点清晰,但对我帮助不大)或试验中找到答案。 特别是,我想知道 Python 中是否有等效项。 最佳
我目前正在从包含体素的 MRI 数据量中去除不均匀性。我想在这些体积上应用 sobel 算子来找到梯度。我熟悉 2d sobel mask 和 2d 图像的邻域。 索贝尔面具: 1 2 1 0 0 0
Img 是我输入的 RGB 图像 import cv2 import numpy as np img = cv2.imread("Lenna.png") black = cv2.cvtColor(im
我正在用 C#.net 做人脸检测项目,在某些情况下,我从 sobel 获得了更好的结果,而在其他一些情况下,我从 canny 获得了更好的结果。但实际上哪个更好? 最佳答案 Canny 建立在 So
我是一名优秀的程序员,十分优秀!