저는 std::set<int>
(s)이고 std::vector<int>
(v)입니다. 벡터는 정렬 된/고유 한 것이 보장됩니다. 나는 v의 모든 요소가 s에 있는지 (또는 s의 v가 아닌 v의 첫 번째 요소에서 멈추는 지) 알고 싶다. v를 집합으로 변환하고 == test를 할 수 있지만 컨테이너 유형을 변경하지 않고 다른 방법이 있습니까? 당신이 V의 모든 요소가 필요한 경우C++ : container2에없는 container1의 요소를 찾으십시오.
if(v.size() > s.size())
{
// since v has unique values
// v is not subset of s
// if you need to find a first element of v not in s
// you need to run the loop below anyway
}
for(auto i : v)
{
if(!s.count(i))
{
// i not in s
}
}
는하지의에서, 단지 std::set_difference
루프'표준 : find_if() '및 람다? –
'std :: mismatch'는 어떻습니까? –
'std :: set_difference'? –