2012-05-09 74 views
9

我想看看向量v1是否在向量內v2。我的矢量是有序的,並且需要保存順序。尋找找到一個STL向量內的C + + STL向量

例如,如果V1 =(A,BV2 =(E,F,A,B,我想獲得指向一個一個迭代v2

STL查找只發現矢量內的一個對象。我想我想要的是類似於string :: find的東西。

STL中有這樣的功能嗎?

+0

當你說你的載體是有序的,你的意思是他們是由一些標準,例如排序,你可以一個元素的數據進行比較,以確定哪一個是第一位的?或者你的意思是說,你已經按照特定的順序設置了它們,這些順序不能僅僅通過查看元素並比較它們而得出,而是依賴於外部的某些東西? –

+1

[std :: includes](http://en.cppreference.com/w/cpp/algorithm/includes)可能會有所幫助,但不知道在您的案例中使用了什麼排序。 –

+1

按順序我的意思是我已經使用STL向量來建模一個有序的列表,它不能通過查看元素和比較它們而得出。我需要找出v1的成員是否以相同的順序出現在v2中。我無法排列矢量。就像您在搜索另一個字符串時不排序字符串一樣。 – Ari

回答

13

它看起來像你想在另一個序列內搜索一個子序列。您可以使用標準庫中的std::search來完成此操作。

auto it = std::search(v2.begin(), v2.end(), v1.begin(), v1.end()); 
+0

謝謝,我想這就是我一直在尋找的! – Ari