std::rotate() rotate 함수를 이용해 값들을 회전시키는 듯 지정된 횟수만큼오른쪽으로 회전시키거나, 왼쪽으로 회전할 수 있다. 회전 시킬 때마다 원소들 간에 swap을 해주는 것이기 때문에 컨테이너에 원소가 많이 존재하거나 하는 경우에는 매우 비효율적이며 특수한 경우가 아닌 경우 사용을 지양해야 한다. Parameters |paramet...
std::find() 범위 안에 원하는 값을 찾는 함수이다. 범위 안 (first 부터 last 전 까지) 의 원소들 중 val 과 일치하는 첫 번째 원소를 가리키는 반복자를 리턴한다. 만일 일치하는 원소를 찾지 못할 경우 last 를 리턴한다. 이 함수는 원소를 비교할 때 operator== 을 사용한다. >참고로 이 함수는 string 의 find...
std::find_if() 특정 범위 내에서 특정 조건을 만족하는 데이터를 찾는 함수이다. 조건과 일치한다는 것을 pred에 원소를 인자로 전달하여 호출하였을 때 true를 반환한다는 의미이다. Parameters |Parameters|Description| |---|---| |first|찾는 범위의 첫번째 iterator| |last|찾는 범위의 마...
std::to_string() 숫자 형식의 값(numeric value)을 string type으로 변환해주는 함수이다. 사용된 형식은 printf가 해당 유형에 대해 출력하는 것과 동일하다. |type of val|printf equivalent|description| |---|---|---| |int|"%d"|val의 10진수 기반 값음수 값은 앞...
std::string::find() string 객체 내부에 존재하는 string 객체 내에 특정 문자열을 찾거나 특정 문자를 찾는 메서드(method) 또는 공개 멤버 함수(public member function)이다. 가장 처음 발견한 곳의 인덱스(index)를 반환한다. C 언어 스타일을 포함해서 총 4가지 형태가 존재한다. 그중 3 가지는 특정...
인라인 함수 (inline function) 인라인(inline)은 C++ function keyword 중 하나로 함수 호출이 함수 자체의 내용 복사본으로 대체되어 실행된다. 마치 매크로처럼 행동하는 함수라고 생각하면 된다. 인라인 함수를 사용하면 다음과 같은 많은 이점을 얻을 수 있다. 함수 내부의 코드 재사용 할 수 있다. 인스턴트 코드(내부에서...
std::vector::erase() vector에서 단일 요소(position) 또는 요소 범위( [first,last) )를 제거하는 함수이다
std::next() n 위치를 전진시킨 후 가리키는 요소의 iterator를 반환한다. 만약 random-access iterator의 경우 n개의 요소가 진행될 때까지 증가 또는 감소 연산자를 반복적으로 사용한 후 반환한다. Parameters |Parameters|Description| |---|---| |it|기본 위치가 되는 iterator순...
std::unique() 범위에 있는 동등한 요소의 모든 연속 그룹의 범위([first,last))에서 인접한 중복 요소를 제거한다. std::unique()는 배열 또는 컨테이너의 크기를 변경하지 않으며, 중복 요소를 중복되지 않은 다음 요소로 교체하여 제거한다. 제거되지 않은 마지막 요소 뒤에 오는 요소에 대한 iterator를 반환하여 단축된 범위...
std::sort() 범위 내의 요소들을 정렬하는 함수이다. 기본적으로 오름차순(asceding)으로 정렬하며, comp를 통해 정렬 기준을 정할 수 있다. 평균적으로 $O(NlogN)$으로 실행되며 여기서 N = std::distance(first, last)으로 정의된다. 원래 순서를 유지한다고 보장할 수 없다. list의 경우 forward ite...
범위 내의 요소들이 정렬되어 있는지 확인하는 함수이다.
벡터 중복 원소 제거 벡터 내 중복된 원소가 존재할 경우 std::sort(), std::unique(), std::vector::erase()를 이용해 중복된 원소를 제거하는 코드이다. Output
알고리즘 문제에서 종종 주어진 수가 2의 제곱수($2^{n}$)인지 확인할 필요가 있다. 아래는 이를 위해 구현된 몇가지 예시들이다. while 문 사용 가장 쉽게 생각할 수 있는 방법 중 하나로 주어진 숫자를 2로 나누어 1이 될때까지 while문을 실행하는 방법이다. 중간에 2와 나머지 연산을 통해 0이 아니라면 while문을 빠져나오게 만든다. ...
C++ 특징: 일반화 프로그래밍(generic programming) C++의 프로그래밍 언어로서의 특징 중 하나는 일반화 프로그래밍(generic programming)이다. 일반화 프로그래밍은 데이터를 중시하는 객체 지향 프로그래밍과는 달리 프로그램의 알고리즘에 중점을 두는 프로그래밍이다. C++에서 이런 일반화 프로그래밍을 지원하는 대표적인 기능...
함수 템플릿을 사용하면 같은 알고리즘을 기반으로 하면서, 서로 다른 타입에서 동작하는 함수를 한 번에 정의할 수 있다.
C++에서 클래스 템플릿(class template)이란 클래스의 일반화된 선언을 의미한다.