C++: сравнение двух векторов



есть ли способ сравнить два вектора?



if (vector1 == vector2)
DoSomething();


Примечание: в настоящее время, эти векторы не отсортированы и содержат целые значения.

961   4  

4 ответов:

Регистрация std::mismatch метод C++.

сравнение векторов обсуждалось на форум DaniWeb и ответил.

в C++: сравнение двух векторов

проверяем, чтобы пост. будет полезно для вас. они добились того же с помощью другого-2 метода.

Сравните два вектора C++

ваш код (vector1 == vector2) это правильный синтаксис c++. Существует == оператора для векторов.

если вы хотите сравнить короткий вектор с частью более длинного вектора, вы можете использоватьequal() оператора для векторов. (документации)

вот пример:

using namespace std;

if( equal(vector1.begin(), vector1.end(), vector2.begin()) )
    DoSomething();

если они действительно абсолютно должны оставаться несортированными (чего они действительно не делают.. и если вы имеете дело с сотнями тысяч элементов, то я должен спросить, почему вы сравниваете векторы, как это), вы можете взломать метод сравнения, который работает с несортированными массивами.

единственный способ, которым я думал это сделать, - создать временный vector3 и притворись, что делаешь set_intersection добавляя все элементы vector1 к нему, то делать поиск для каждого отдельного элемента vector2 на vector3 и удаление его, если найдено. Я знаю, что это звучит ужасно, но именно поэтому я не пишу никаких стандартных библиотек C++ в ближайшее время.

на самом деле, хотя, вроде их в первую очередь.

согласно обсуждению здесь вы можете напрямую сравнить два вектора с помощью

==

if (vector1 == vector2){
   //true
}
else{
   //false
}

Comments

    Ничего не найдено.