배열의 요소들 중에 중복 요소를 제거하는 방법을 소개합니다.
1. set를 이용하여 배열의 중복 요소 제거
set는 기본적으로 중복 요소를 허용하지 않는 자료구조입니다. for문을 이용하여 set에 모든 요소를 추가하면, set의 특성에 의해 저절로 중복 요소가 제거됩니다.
#include <iostream>
#include <unordered_set>
int main() {
int arr[] = {1, 2, 5, 3, 2, 5, 9, 7};
int n = sizeof(arr) / sizeof(*arr);
std::unordered_set<int> set;
for (int i = 0; i < n; i++) {
set.insert(arr[i]);
}
int i = 0;
int newArr[set.size()];
for (auto it = set.begin(); it != set.end(); it++) {
newArr[i++] = *it;
}
for (const int &i: newArr) {
std::cout << i << ' ';
}
return 0;
}Output:
7 9 3 5 2 12. set를 이용하여 vector의 중복 요소 제거
set를 이용하여 vector의 중복 요소를 제거할 수 있습니다. vector의 모든 요소를 set에 저장하고, 다시 set를 vector로 변경하면 중복 요소를 제거할 수 있습니다.
unordered_set의 생성자에 vector.begin(), vector.end()를 전달하면 vector의 모든 요소가 set에 추가됩니다.
반대로 vector의 생성자에 begin과 end를 전달하면 set의 모든 요소가 vector에 추가됩니다.
#include <iostream>
#include <unordered_set>
#include <vector>
int main() {
std::vector<int> int_vec = {1, 2, 5, 3, 2, 5, 9, 7};
// remove duplicates
std::unordered_set<int> int_set(int_vec.begin(), int_vec.end());
// set to vector
std::vector<char> new_vec(int_set.begin(), int_set.end());
for (const int &i: new_vec) {
std::cout << i << ' ';
}
return 0;
}Output:
7 9 3 5 2 1Loading script...
Related Posts
- [C++] 배열을 리스트(list)로 변환
- [C++] 배열에서 특정 요소 제거
- [C++] vector 모든 요소의 합계 계산
- [C++] 배열에 특정 요소가 있는지 확인
- [C++] 두개의 배열이 같은지 비교
- [C++] 2차 배열 복사 방법
- [C++] 배열 복사하는 방법 (copy, memcpy)
- [C++] 함수의 인자로 배열 전달
- [C++] vector 모든 값의 평균 계산
- [C++] vector를 문자열로 변환
- [C++] 배열에서 요소의 Index 찾기
- [C++] 배열의 중복 요소 찾기
- [C++] 배열의 중복 요소 제거
- [C++] 배열 순서 거꾸로 뒤집기
- [C++] char 배열을 string으로 변환
- [C++] string을 char 배열로 변환
- [C++] 문자열 거꾸로 뒤집기
- [C++] vector의 중복 요소 제거
- [C++] 두 배열을 하나의 배열로 합치기
- [C++] 배열 길이, 크기 얻는 방법
- [C++] 배열에서 최대값, 최소값 찾기 (3가지 방법)
- [C++] int를 string으로 변환, 3가지 방법
- [C++] string의 문자 정렬
- [C++] 문자열 리스트(Vector, 배열) 정렬
- [C++] string을 int로 변환, 3가지 방법
- [C++] string 대문자/소문자 변환 방법
- [C++] string.compare() 문자열 비교
- [C++] int를 char로 변환, 3가지 방법
- [C++] 문자열 자르기, 3가지 방법
- [C++] isdigit(), 어떤 문자가 숫자인지 확인
- [C++] strlen(), 문자열 길이 계산
- [C++] strcmp(), strncmp() 함수로 문자열 비교
- [C++] strstr(), 특정 문자열 찾기