任何人都可以告訴我檢查向量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))
我想這可能與一些循環來完成。但是有沒有一個功能可以讓它更容易?
任何人都可以告訴我檢查向量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))
我想這可能與一些循環來完成。但是有沒有一個功能可以讓它更容易?
你std::sort
他們,然後用std::set_intersection
(或相似的算法)有包括的元素。
A和B中的元素是否已分類?如果不是,將它們分類是允許的嗎? – 2015-03-19 08:11:36
這可能會有所幫助:http://stackoverflow.com/questions/17394149/how-to-efficiently-compare-vectors-with-c/17394298#17394298 – stefan 2015-03-19 08:13:25
我不完全理解程序的邏輯:循環因爲你似乎沒有在循環體中使用當前元素('如果A中沒有任何元素存在於A中,''A'中的每個元素都循環遍歷'A'的'size'而不是元素,獨立於A中的特定元素)。你能澄清一下嗎? – stefan 2015-03-19 08:17:08