小编idz*_*eit的帖子

更有效的矢量比较

我试图比较2个不同的向量来捕捉任何重复.一个向量是10个数字的5百万个元素,另一个是10个元素中的280万个.我的操作系统是ubuntu 18.04,我使用的是QtCreator.当我尝试比较这些大型载体时,我得到了一个挂机.这是我尝试过的:

vector<vector<int> >::iterator v1;
vector<vector<int> >::iterator v2;

for(v1 = vector1.begin(); v1 != vector1.end(); v1++)
    {
        for(v2 = vector2.begin(); v2 != vector2.end(); v2++)
        {
            if(*v1 == *v2)
            {
                vector1.erase(v1);
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

当我尝试运行它并调试Qt挂起.我也想知道我是否需要更改擦除看起来像:

vector1.erase(v1.begin(), v1.end());
Run Code Online (Sandbox Code Playgroud)

任何有关"更好"的方式的建议都会有所帮助.我知道这些是一些具有超过250万个10个数字元素的大向量.

Thx提前

Idzireit

仍在解决这个问题.现在我正在尝试Mark Ransom解决方案的衍生产品.这是我到目前为止所得到的:

#include "includes.h"

bool vec_less(vector<int> &v1, vector<int> &v2)
{

    for(int i = 0; i < 10; i++)
    {
        if(v1[i] == v2[i])
        {
            i++;
        }
        if(v1[i] < v2[i])
            return true;
        else
            return false;
    }
    return v1.size() <v2.size();
}

void dupfilter(vector<vector<int> > &aaperms, …
Run Code Online (Sandbox Code Playgroud)

c++ vector

3
推荐指数
1
解决办法
168
查看次数

标签 统计

c++ ×1

vector ×1