Development Tip

C ++ : 두 벡터 비교

yourdevel 2020. 11. 8. 11:20
반응형

C ++ : 두 벡터 비교


두 벡터를 비교할 수있는 방법이 있습니까?

if (vector1 == vector2)
    DoSomething();

참고 : 현재 이러한 벡터는 정렬되지 않으며 정수 값을 포함합니다.


std::mismatchC ++ 방법을 확인하십시오 .

벡터 비교는 DaniWeb 포럼 에서 논의되었으며 또한 답변되었습니다 .

C ++ : 두 벡터 비교

아래 SO 게시물을 확인하십시오. 도움이 될 것입니다. 그들은 다른 -2 방법으로 동일한 것을 달성했습니다.

두 벡터 비교 C ++


코드 ( vector1 == vector2)는 올바른 C ++ 구문입니다. ==벡터에 대한 연산자 가 있습니다 .

짧은 벡터를 더 긴 벡터의 일부와 비교하려면 equal()벡터에 연산자를 사용할 수 있습니다 . ( 여기에 문서 )

예를 들면 다음과 같습니다.

using namespace std;

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

여기서 논의한 내용에 따르면 다음을 사용하여 두 벡터를 직접 비교할 수 있습니다.

==

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

그들이 정말로 절대적으로 정렬되지 않은 상태로 남아 있어야한다면 (정말로 그렇지 않습니다 .. 그리고 수십만 개의 요소를 다루고 있다면 왜 이와 같은 벡터를 비교하는지 물어봐야합니다), 비교를 함께 해킹 할 수 있습니다. 정렬되지 않은 배열과 함께 작동하는 방법.

나는의 불구하고 그렇게 할 수있는 유일한 방법은 임시을 만드는 것이었다 vector3하고 작업을 수행하는 척 set_intersection의 모든 요소를 추가하여 vector1다음의 각 요소에 대해 검색하고, 그것에을 vector2에를 vector3발견하면 그것을 제거. 끔찍하게 들리지만, 그래서 곧 C ++ 표준 라이브러리를 작성하지 않는 것입니다.

하지만 실제로는 먼저 정렬하십시오.

참고 URL : https://stackoverflow.com/questions/6248044/c-comparing-two-vectors

반응형