std::set<int>
및 다중 세트 클래스 std::multiset<int>
을 사용하여 조합, 교차 등 일부 설정 작업을 수행하고 있습니다. 문제는 두 개의 다중 세트 사이에서 교차를 수행해야한다는 것입니다. 나는 또한 중복 된 값을 얻는다. 교차로는 간단한 세트 (다중 세트가 아닌)로 사용할 때 잘 작동합니다.C++을 사용하여 다중 교차를 수행하려고합니다
Set1과는 = {1,2,3,4,5,6}
은 Set2를이 = {4,5,6,7,8,9}
다음
표준 :과 set_intersection 나에게 올바른을 제공 나는 MULTISET
멀티 SET1이있는 경우, 그러나 {4,5,6}
인, 결과 {1,1,2,2,3,3,4,4,5,5,6 , 6}
다중 세트 2 {4,4,5,5,6,6,7,7,8,8,9,9}
그리고 다시 std :: set_intersection을 사용합니다. 나 결과에요 {4,5,6}
실제 교차 {4,4,5,5,6,6}나는 여러 세트를 사용하고 있지만 있기 때문에, 정확하지
교차 결과를 유지하기 위해, 여전히 잘못된 대답을 얻습니다.
아무도 내가이 문제를 어떻게 해결할 수 있는지 말해 줄 수 있습니까?
해결 방법으로 구현에서 벡터의 std :: set을 사용할 수 있도록 허용하고 set_intersection이 필요한 모든 요소를 포함하는 벡터를 반환합니다. – 16tons
그래서 각'{elememt, count}'에 대해 출력에있는 두 개의 다중 세트 사이의 계산을 원하십니까? – Yakk
고마워, 모든 사람들이 벡터로 그 일을 할 수 있을지 모르겠지만 코드가있는 곳 어디에서도 찾을 수 있기 때문에 세트가있는 솔루션을 선호한다. 나는 나의 예에서 보여준 결과를 원한다. 중복되는 요소가 중복 된 것이 아니라 개별적인 번호로 간주되기를 바랍니다. @ 얍크 네가 방금 말한 것과 같은 것. –