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
'C, C++' 카테고리의 다른 글
C, C++ 에서 동적 메모리의 할당(malloc, new)과 해제(free,delete) 원리 (0) | 2018.04.30 |
---|---|
포인터 배열 VS 배열 포인터 차이 및 예제 (0) | 2018.04.30 |
[c/c++] memset()을 이용한 배열에 값을 모두 0또는 -1로 초기화 (0) | 2018.04.08 |
C++ STL Vector 기본 생성, 추가, 삭제 (0) | 2018.03.30 |
C, C++ 프로그램 실행 시간 측정 (1) | 2018.03.29 |