这是我第一次使用这个习语,我有一个向量v1
,其中元素必须是另一个向量中元素的子集v2
。现在,想象v1
和作为集合,如果不存在(对于任何有意义的) v2
,我想执行v2-v1
并抛出异常。v1[i]
v2
i
我想出了这个:
std::vector<T> v1;
std::vector<T> v2;
//fill v1, v2 somehow
for(size_t i=0; i<v1.size(); i++){
v2.erase(std::remove(v2.begin(), v2.end(), v1[i]), v2.end());
if(/*erase option failed because v1[i] doesn't exists in v2*/)
throw std::runtime_exception (std::to_string(i)+"-th in v1 doesn't exists in v2!");
}
我该如何填写if
条件?