9
我想看看向量v1是否在向量內v2。我的矢量是有序的,並且需要保存順序。尋找找到一個STL向量內的C + + STL向量
例如,如果V1 =(A,B)和V2 =(E,F,A,B),我想獲得指向一個在一個迭代v2。
STL查找只發現矢量內的一個對象。我想我想要的是類似於string :: find的東西。
STL中有這樣的功能嗎?
我想看看向量v1是否在向量內v2。我的矢量是有序的,並且需要保存順序。尋找找到一個STL向量內的C + + STL向量
例如,如果V1 =(A,B)和V2 =(E,F,A,B),我想獲得指向一個在一個迭代v2。
STL查找只發現矢量內的一個對象。我想我想要的是類似於string :: find的東西。
STL中有這樣的功能嗎?
它看起來像你想在另一個序列內搜索一個子序列。您可以使用標準庫中的std::search
來完成此操作。
auto it = std::search(v2.begin(), v2.end(), v1.begin(), v1.end());
謝謝,我想這就是我一直在尋找的! – Ari
當你說你的載體是有序的,你的意思是他們是由一些標準,例如排序,你可以一個元素的數據進行比較,以確定哪一個是第一位的?或者你的意思是說,你已經按照特定的順序設置了它們,這些順序不能僅僅通過查看元素並比較它們而得出,而是依賴於外部的某些東西? –
[std :: includes](http://en.cppreference.com/w/cpp/algorithm/includes)可能會有所幫助,但不知道在您的案例中使用了什麼排序。 –
按順序我的意思是我已經使用STL向量來建模一個有序的列表,它不能通過查看元素和比較它們而得出。我需要找出v1的成員是否以相同的順序出現在v2中。我無法排列矢量。就像您在搜索另一個字符串時不排序字符串一樣。 – Ari