因此,我們有set<string> a
和set<string> b
,我們希望得到std::set<string> c
這將包含將代表a - b
(意思是什麼,從a
離開,如果我們從它b
刪除所有項目,如果b
包含超過a
或項目中不存在的項目a
我們希望保持他們的數字都這樣簡單的數學:5-6 = 0
而3-2 = 1
)如何獲取兩個std :: set的元素之間的差異<string>?
3
A
回答
11
我想你想從<algorithm>
std::set_difference()
。
#include <iostream>
#include <algorithm>
#include <set>
#include <string>
#include <iterator>
using namespace std;
set<string> a;
set<string> b;
set<string> result;
int main()
{
a.insert("one");
a.insert("two");
a.insert("three");
b.insert("a");
b.insert("b");
b.insert("three");
set_difference(a.begin(), a.end(), b.begin(), b.end(), inserter(result, result.begin()));
cout << "Difference" << endl << "-------------" << endl;
for (set<string>::const_iterator i = result.begin(); i != result.end(); ++i) {
cout << *i << endl;
}
result.clear();
set_symmetric_difference(a.begin(), a.end(), b.begin(), b.end(), inserter(result, result.begin()));
cout << "Symmetric Difference" << endl << "-------------" << endl;
for (set<string>::const_iterator i = result.begin(); i != result.end(); ++i) {
cout << *i << endl;
}
return 0;
}
1
這應該工作,我猜。
for(set<string> :: iterator it = a.begin(); it != a.end(); ++it)
{
set<string>:: iterator iter = find(b.begin(), b.end(), *it);
if(iter == b.end())
{ // ^^^^^^^ Note: find returns b.end() if it does not find anything.
c.insert(*iter)
}
}
3
相關問題
- 1. 獲取兩個NSStrings之間的差異
- 2. 如何獲取兩個日期時間值之間的差異?
- 3. 提取每兩個連續元素之間的差異
- 4. 如何獲取php中的兩個單詞之間的差異
- 5. 如何獲取兩個JSON之間的差異?
- 6. 獲得兩個表之間的差異?
- 7. Prolog中的兩個連續元素之間的差異
- 8. 兩個內聯塊之間的差距<span>元素
- 9. std :: set :: iterator和std :: set :: const_iterator之間是否存在操作差異?
- 10. 如何獲得兩個時間戳之間的差異
- 11. 兩個子陣列元素之間的最大絕對差異
- 12. 兩個列表中元素之間的最小差異總和
- 13. 獲取目標C中兩個NSString之間的差異時間
- 14. Python - 列表元素之間的差異
- 15. quartz_jobs.xml中<group>元素與<job-group>元素之間的差異
- 16. 如何計算兩個數組中每個元素之間的差異?
- 17. 如何在iPhone中獲取兩天之間的差異
- 18. 如何獲取sql語句中兩行之間的差異
- 19. 從2個REF'd列獲取兩個日期之間的差異
- 20. Set()和RaisePropertyChanged()之間的差異
- 21. 獲取F#集合中兩個元素之間的元素
- 22. 獲取陣列中兩個元素之間的所有元素
- 23. 獲取兩個子查詢的計數之間的差異
- 24. 如何獲得兩個元素子列表中的兩個列表之間的對稱差異?
- 25. 從多個文件讀取時元素之間的差異
- 26. 如何獲得兩個數據表之間的差異
- 27. 如何獲得兩個日期之間的差異與DQL
- 28. 如何獲得兩個日期之間的差異?
- 29. 如何獲得兩個日期之間的星期差異
- 30. Android如何獲得兩個位圖之間的快速差異
find找不到'NULL',當它找不到元素時,它返回你傳入的「end」迭代器(在本例中爲'b.end()')。 – Dawson
有人能解釋我哪裏出錯了嗎? – Mahesh
@Toolbox - 好的。糾正。 – Mahesh