- Mastering C++ Programming
- Jeganathan Swaminathan
- 97字
- 2021-07-02 18:28:52
Code walkthrough
The following code declares and initializes two sets, s1 and s2:
set<int> s1 = { 1, 3, 5, 7, 9 };
set<int> s2 = { 2, 3, 7, 8, 10 };
The following line will ensure that the vector has enough room to store the values in the resultant vector:
vector<int> v( s1.size() + s2.size() );
The following code will print the values in s1 and s2:
cout << "\nFirst set values are ..." << endl;
copy ( s1.begin(), s1.end(), ostream_iterator<int> ( cout, "\t" ) );
cout << endl;
cout << "\nSecond set values are ..." << endl;
copy ( s2.begin(), s2.end(), ostream_iterator<int> ( cout, "\t" ) );
cout << endl;
The set_difference() algorithm will populate the vector v with values only present in set s1 but not in s2. The iterator, pos, will point to the last element in the vector; hence, the vector resize will ensure that the extra spaces in the vector are removed:
auto pos = set_difference ( s1.begin(), s1.end(), s2.begin(), s2.end(), v.begin() );
v.resize ( pos - v.begin() );
The following code will print the values populated in the vector v:
cout << "\nValues present in set one but not in set two are ..." << endl;
copy ( v.begin(), v.end(), ostream_iterator<int> ( cout, "\t" ) );
cout << endl;
The set_union() algorithm will merge the contents of sets s1 and s2 into the vector, and the vector is then resized to fit only the merged values:
pos = set_union ( s1.begin(), s1.end(), s2.begin(), s2.end(), v.begin() );
v.resize ( pos - v.begin() );
The following code will print the merged values populated in the vector v:
cout << "\nMerged values of first and second set are ..." << endl;
copy ( v.begin(), v.end(), ostream_iterator<int> ( cout, "\t" ) );
cout << endl;
- 構建移動網站與APP:HTML 5移動開發入門與實戰(跨平臺移動開發叢書)
- oreilly精品圖書:軟件開發者路線圖叢書(共8冊)
- Data Analysis with Stata
- 微服務從小白到專家:Spring Cloud和Kubernetes實戰
- PHP從入門到精通(第4版)(軟件開發視頻大講堂)
- 移動互聯網軟件開發實驗指導
- Unity&VR游戲美術設計實戰
- 數據結構:Python語言描述
- Learning iOS Penetration Testing
- 測試架構師修煉之道:從測試工程師到測試架構師(第2版)
- Learning RxJava
- Modern R Programming Cookbook
- Cloud Native Python
- LabVIEW虛擬儀器項目開發與實踐
- 高性能Scala