2015-03-19 92 views
1

任何人都可以告诉我检查向量A是否包含向量B元素的最简单方法?C++检查向量a是否包含向量b的元素

这将是排序的:

for every element in A (
    if (none of the elements in B exist in A) do something and B changes 
    else (do nothing)) 

我想这可能与一些循环来完成。但是有没有一个功能可以让它更容易?

+5

A和B中的元素是否已分类?如果不是,将它们分类是允许的吗? – 2015-03-19 08:11:36

+0

这可能会有所帮助:http://stackoverflow.com/questions/17394149/how-to-efficiently-compare-vectors-with-c/17394298#17394298 – stefan 2015-03-19 08:13:25

+0

我不完全理解程序的逻辑:循环因为你似乎没有在循环体中使用当前元素('如果A中没有任何元素存在于A中,''A'中的每个元素都循环遍历'A'的'size'而不是元素,独立于A中的特定元素)。你能澄清一下吗? – stefan 2015-03-19 08:17:08

回答

0

std::sort他们,然后用std::set_intersection(或相似的算法)有包括的元素。