Vector a 에서 vector b와 겹치는 인자를 제거한 결과를 반환하는 함수 이다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 
#include<iostream>
#include<vector>
using std::cout;
using std::endl;
using std::vector;
 
vector<int> duplication(vector<int>& a, vector <int>& b) {
    vector<int>::iterator iter;
    vector<int>::iterator iter_b;
    vector<int> c = a; //a의 값 복사
    
    for (iter_b = b.begin(); iter_b != b.end(); iter_b++) {
        for (iter = c.begin(); iter != c.end();) {
            if (*iter == *iter_b)
                iter = c.erase(iter); //중복 제거
            else
                iter++;            
        }        
    }
    return c; //결과 반환
}
 
int main() {
    vector<int> a;
    vector<int> b;
 
    a.push_back(1);
    a.push_back(3);
    a.push_back(-1);
    a.push_back(11);
    a.push_back(-5);
    
    b.push_back(-1);
    b.push_back(-5);
    b.push_back(4);
 
    vector<int> c = duplication(a,b); //a에서 b와 겹치는 인자 제거한 결과 반환
    
    //원본 a출력
    for (vector<int>::iterator iter = a.begin(); iter != a.end(); ++iter) 
        cout << *iter <<" ";
    cout << endl;
 
    //b와의 중복 제거된 c출력
    for (vector<int>::iterator iter = c.begin(); iter != c.end(); ++iter) 
        cout << *iter << " ";    
    cout << endl;
 
    return 0;
}
 
cs


- 출력 결과 -



1 3 -1 11 -5

1 3 11

Posted by 꿈만은공돌
,