因此,我們有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. 如何獲取兩個JSON之間的差異?
- 3. 獲得兩個表之間的差異?
- 4. 兩個內聯塊之間的差距<span>元素
- 5. 獲取目標C中兩個NSString之間的差異時間
- 6. Python - 列表元素之間的差異
- 7. 如何在iPhone中獲取兩天之間的差異
- 8. 從2個REF'd列獲取兩個日期之間的差異
- 9. Set()和RaisePropertyChanged()之間的差異
- 10. 獲取兩個子查詢的計數之間的差異
- 11. 如何獲得兩個元素子列表中的兩個列表之間的對稱差異?
- 12. 從多個文件讀取時元素之間的差異
- 13. 如何獲得兩個日期之間的星期差異
- 14. 如何獲得java中兩個zip文件之間的差異
- 15. 如何獲得兩個日期之間的差異?
- 16. 如何獲得兩個數據表之間的差異
- 17. 如何獲得兩個日期之間的差異?
- 18. 如何獲得兩個日期之間的差異?
- 19. 如何獲得PHP中兩個日期之間的差異?
- 20. 從DatePicker獲取兩個日期之間的差異
- 21. 獲取兩個標題之間的差異
- 22. 獲取兩個日期對象之間的小時差異?
- 23. 獲取兩個日期之間的差異
- 24. 使用LINQ獲取兩個表之間的差異
- 25. 獲取兩個查詢之間的數據差異
- 26. 獲取兩個存儲庫之間的差異
- 27. Svnkit:遠程獲取兩個提交之間的差異版本
- 28. 獲取Microsoft Access報告中兩個計數之間的差異
- 29. Mysql - 獲取兩個連續值之間的差異
- 30. 獲取python中兩個詞典之間的差異
find找不到'NULL',當它找不到元素時,它返回你傳入的「end」迭代器(在本例中爲'b.end()')。 – Dawson
有人能解釋我哪裏出錯了嗎? – Mahesh
@Toolbox - 好的。糾正。 – Mahesh