vector 객체 중에 똑같은 값이 있는 것을 제거할 방법을 고민하다가 중복 체크가 될까 하면서 set 컨테이너에 vector 객체를 넣어봤습니다.
예상되로 잘 되네요.
2021. 9. 22 - 최초 작성
#include <iostream>
#include <set>
#include <vector>
using namespace std;
int main()
{
vector<int> a1 = {1, 2, 3, 4, 5};
vector<int> a2 = {1, 2, 3, 4, 5};
vector<int> c1 = {1, 2, 0, 4, 5};
set<vector<int>> s;
printf("s.insert(a1) : {1, 2, 3, 4, 5}\n");
auto ret = s.insert(a1);
if (ret.second)
printf("삽입\n");
else
printf("중복\n");
printf("s.insert(a2) : {1, 2, 3, 4, 5}\n");
ret = s.insert(a2);
if (ret.second)
printf("삽입\n");
else
printf("중복\n");
printf("s.insert(c1) : {1, 2, 0, 4, 5}\n");
ret = s.insert(c1);
if (ret.second)
printf("삽입\n");
else
printf("중복\n");
}
실행 결과
- a2를 s에 삽입하는 경우 이미 똑같은 원소를 가진 a1이 s에 포함되어 있기 때문에 중복이라고 출력합니다.
s.insert(a1) : {1, 2, 3, 4, 5} 삽입 s.insert(a2) : {1, 2, 3, 4, 5} 중복 s.insert(c1) : {1, 2, 0, 4, 5} 삽입 |