C ++ : 두 벡터 비교
두 벡터를 비교할 수있는 방법이 있습니까?
if (vector1 == vector2)
DoSomething();
참고 : 현재 이러한 벡터는 정렬되지 않으며 정수 값을 포함합니다.
std::mismatch
C ++ 방법을 확인하십시오 .
벡터 비교는 DaniWeb 포럼 에서 논의되었으며 또한 답변되었습니다 .
아래 SO 게시물을 확인하십시오. 도움이 될 것입니다. 그들은 다른 -2 방법으로 동일한 것을 달성했습니다.
코드 ( 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
'Development Tip' 카테고리의 다른 글
ES6 맵을 JSON.stringify하는 방법은 무엇입니까? (0) | 2020.11.08 |
---|---|
WebView처럼 Windows Form에 Gecko 또는 Webkit을 임베드 할 수 있습니까? (0) | 2020.11.08 |
git add --all 실행 취소 (0) | 2020.11.08 |
tf.Session ()과 tf.InteractiveSession ()의 차이점은 무엇입니까? (0) | 2020.11.08 |
bin과 gac 모두에있는 DLL, 어느 것이 사용됩니까? (0) | 2020.11.08 |