유용한 알고리즘 함수

원종운·2021년 4월 12일
0

unique(first, last)

  • [first, last) 구간에서 인접하는 중복된 원소를 뒤로 보내여 주며, 상대적인 위치(앞, 뒤)는 유지가됩니다.

  • 반환값은 앞의 작업이 모두 끝난 위치의 다음을 가리키는 iter을 반환하여줍니다.

  • in-place로 작동하기때문에, 인접하여 중복했던 원소들은 뒤로 밀리게 된 것이지 삭제된 것이 아니라 남아있다는 것을 유의하여야합니다.

  • 이 함수를 이용해서 중복된 원소를 제거하기 위해서는 인접하여 중복되지 않은 원소들도 인접하도록 하면 되는데 간단하게 소팅을 하게 되면 정렬의 특성상 중복된 원소들은 모두 인접하게 붙게되므로, 그 이후 erase 함수를 사용하여 주면 됩니다.

인접하여 중복된 원소 지우기

arr.erase(unique(arr.begin(), arr.end()), arr.end());
return vector<int>(arr);

중복된 원소 지우기

sort(arr.begin(), arr.end());
arr.erase(unique(arr.begin(), arr.end()), arr.end());
return vector<int>(arr);
  • 이 방법은 중복된 원소를 지워주지만, 소팅이 이루어졌기때문에 이전의 arr에서의 순서를 유지시켜주지 못한다는 것을 유의하여야합니다.

all_of(first, last, func)

  • [first, last) 범위 내의 함수 func의 결과가 모두 true인 경우 true를 반환, 그렇지 않으면 false를 반환

any_of(first, alst, func)

  • [first, last) 범위 내의 func의 결과가 하나라도 true인 경우 true를 반환, 그렇지 않으면 false를 반환

count(first, last, value)

  • [first, last) 범위 내의 value(operator== 사용)와 같은 데이터의 수를 반환하여줍니다.
profile
Java, Python, JavaScript Lover

0개의 댓글