gpt4 book ai didi

C++比较 vector ,更快的方法

转载 作者:行者123 更新时间:2023-11-28 02:55:12 25 4
gpt4 key购买 nike

是否有更快的方法从 vector 列表中找到特定 vector ?我做 vector 比较,这需要永远做,我有数百万条记录。

我正在使用 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;
}

最佳答案

是的,如果您愿意稍微更改一下数据结构。

加快比较速度的一种简单方法是使用校验和。我的意思是,从字面上检查总和。在构建 vector 时,保留每个 vector 总和的总和(只要您与数据类型一致,溢出就无关紧要)。然后,不是比较整个 vector ,而是只比较总和 - 如果总和匹配,那么你只需要比较 vector 。

更进一步,您可以按校验和对 vector 进行排序...这可能只有在您有很多 vector 时才值得,因为它将校验和搜索从 n 减少到 log(n)

关于C++比较 vector ,更快的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22158609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com