C++比较矢量,更快的方法
C++ to compare vectors, faster way
如果有更快的方法可以从向量列表中找到特定的向量?我做矢量比较,这需要永远做,我有数百万条记录。
我正在使用 openmp
这就是我到目前为止所拥有的
#pragma omp parallel for
for(int i=0;i<crossed.size();i++){
#pragma omp flush (exit)
if(!exit && (crossed[i]== vectors)){
loop = i;
found = true;
exit = true;
#pragma omp flush (exit)
}
}
if(found == false){
crossed.push_back(vectors);
cross.push_back(0);
}
else{
cross[loop] = cross[loop]+1;
}
是的,如果你愿意稍微改变一下你的数据结构。
加快比较速度的一种简单方法是使用校验和。我的意思是,从字面上检查总和。在构建向量时,请保持每个向量的总和(只要与数据类型一致,溢出就无关紧要)。然后,不要比较整个向量,而只比较总和 - 那么只有当总和匹配时,你才能比较向量。
为了更进一步,您可以按校验和对向量进行排序...这可能只有在你有很多向量时才是值得的,因为它将你的校验和搜索从 n 减少到 log(n)
相关文章:
- 通过比较C++中的行在 txt 文件中搜索的最简单方法是什么?
- 比较两个节点坐标的最佳方法是什么?
- 比较C++中两个整数的最有效和最干净的方法是什么?
- 比较C++变量的最有效方法
- "operator()"在重载运算符方法中是什么意思,在priority_queue(STL)中用作C++中的比较器?
- 比较"A"、"C"、"G"'T'字符的最快方法
- 任何方法都可以在C++中比较数据结构中的许多方法
- 是否有任何统一的方法可以在 c++ 中创建自定义比较器?
- 在 c++ 中比较不相等数组或字符串的方法
- 使用 lambda 比较初始化优先级队列的方法
- C# 通用比较方法 [C++模板的类似物]
- 比较字符* (C/C++) 的最快方法?
- 获取字符串大小的各种方法之间的比较
- C 是否具有对两个STD :: sets,vectors等进行三角比较的标准方法
- 比较两个文件中的两个中间人的最佳方法.C++
- sort() 方法 c++ 中的比较器函数.为大量数字获得不同的解决方案
- 比较数据库搜索方法
- C++ 将整数与硬编码的整数集进行比较的更简单方法
- C++方法与Java的比较(从Java到C ++的语法)
- 正确的方法比较两个指向算法中使用的指向算法