728x90
728x90
ํฉ์งํฉ : merge() / set_union()
๋ ๋ฒกํฐ๋ฅผ ๋ถํ๋ค. ๋ ํจ์์ ์ฐจ์ด์ ์ด ์๋ค. merge()๋ ์ค๋ณต ํ์ฉ, set_union()์ ์ค๋ณต ์ ๊ฑฐ
Iterator iter ๋ณ์์ ํจ์๋ฅผ ์ฌ์ฉํ๊ณ ๊ฒฐ๊ณผ์ ๋์ ๊ฐ๋ฆฌํค๋ ๊ฐ์ ๋ฐํ๋ฐ๋๋ค.
๊ทธ iter์์ ๋ฒกํฐ์ ์์์ ์ ๋นผ์ ๊ฐ์ด ๋ช ๊ฐ์ธ์ง ์์๋ด์ ๊ทธ ๊ฐ์ผ๋ก resize() ํจ์๋ฅผ ์ฌ์ฉํด์ ๋ฒกํฐ ํฌ๊ธฐ ์กฐ์ ํ ์ํ
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
// ๋ฐ๋์ ์ ๋ ฌ๋ ํ ์ฌ์ฉ ๊ฐ๋ฅ
vector<int> a = {1, 2, 3, 4, 5};
vector<int> b = {5, 6, 7, 8, 9};
vector<int> result1(10);
vector<int> result2(10);
vector<int>::iterator iter;
// sort(a.begin(), a.end());
// sort(b.begin(), b.end());
// ๋จธ์ง - [1, 2, 3, 4, 5, 5, 6, 7, 8, 9]
merge(a, a+5, b, b+5, result1.begin());
// ํฉ์งํฉ (A ∪ B) - [1, 2, 3, 4, 5, 6, 7, 8, 9]
iter = set_union(a, a+5, b, b+5, result2.begin());
result2.resize(iter - result2.begin());
return 0;
}
์ฐจ์งํฉ, ๊ต์งํฉ, ๋์นญ ์ฐจ์งํฉ : set_difference(), set_intersection(), set_symmetric_difference()
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
// ๋ฐ๋์ ์ ๋ ฌ๋ ํ ์ฌ์ฉ ๊ฐ๋ฅ
vector<int> a = {1, 2, 3, 4, 5};
vector<int> b = {5, 6, 7, 8, 9};
vector<int> result1(10);
vector<int> result2(10);
vector<int> result3(10);
vector<int> result4(10);
vector<int>::iterator iter;
// sort(a.begin(), a.end());
// sort(b.begin(), b.end());
// ์ฐจ์งํฉ (A - B) - [1, 2, 3, 4]
iter = set_difference(a, a+5, b, b+5, result1.begin());
result1.resize(iter - result1.begin());
// ์ฐจ์งํฉ (B - A) - [6, 7, 8, 9]
iter = set_difference(b, b+5, a, a+5, result2.begin());
result2.resize(iter - result2.begin());
// ๊ต์งํฉ (A ∩ B) - [5]
iter = set_intersection(a, a+5, b, b+5, result3.begin());
result3.resize(iter - result3.begin());
// ๋์นญ ์ฐจ์งํฉ (A โณ B) - [1, 2, 3, 4, 6, 7, 8, 9] (๊ต์งํฉ์ ์ ์ธํ๋ ๋๋)
iter = set_symmetric_difference(a, a+5, b, b+5, result4.begin());
result4.resize(iter - result4.begin());
return 0;
}
728x90
๋ฐ์ํ
'๐ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ ๋งต๊ฒ (C++) (0) | 2020.12.24 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] K๋ฒ์งธ์ (C++) (0) | 2020.12.23 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ฃผํ์ง ๋ชปํ ์ ์ (C++) (0) | 2020.12.18 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ ํ๋ฒํธ ๋ชฉ๋ก (C++) (0) | 2020.12.18 |