jeudi 20 décembre 2018

Compare smaller vector to bigger to check if it differes at the end of smaller

We have two vectors of size that depends on runtime and need to check if they are equal - differ elements only after the end of smaller size vector. I used std::equal but the issue is that I need to find first which vector is of smaller size which leads to extra line of code :

#include <vector>
#include <iostream>

int main()
{
std::vector<int> a(1000, 3);
std::vector<int> a1(100, 3);


if(a.size() > a1.size())
{
if(std::equal(a1.begin(), a1.end(), a.begin()))
{
     std::cout << "Same a gt a1" << std::endl;
}
}

if(a1.size() > a.size())
{
if(std::equal(a.begin(), a.end(), a1.begin()))
{
     std::cout << "Same a1 gt a" << std::endl;
}
}

if(a1.size() == a.size())
{
if(std::equal(a.begin(), a.end(), a1.begin()))
{
     std::cout << "Same a = a1" << std::endl;
}
}
}

Can the code to compare two vectors or differ only at the end of smaller vector be improved?

Aucun commentaire:

Enregistrer un commentaire