본문 바로가기

Programming/C++

(5)
vector push_back vs emplace_back 1. push_back 원형 void push_back(const value_type& value); 인자 value : 추가할 원소 값 value_type : 추가할 원소들의 타입 리턴 값 없음 재할당 발생 시 Allocator::allocate()를 통해 예외 처리 가능 할당 실 패 시 bad_alloc 기능 vector의 요소 끝에 원소 추가 작동 방식 삭입할 객체 받음 push_back 내에 임시 객체 생성 임시 객체를 vector에 추가 임시 객체 소멸 장점 암시적인 생성자만 생성 포인터를 변수로 사용할 시 안전 단점 생성자와 소멸자가 두번씩 호출 되어 성능 저하 2. emplae 원형 iterator emplace (Arg&&.. args); 인자 args : 가변인자들 리턴 값 없음 기능 v..
정수 제한 예외처리 작업 시 해당 변수의 최댓값이나 최소값을 찾아 보는 경우가 많아 찾던 중 상수로 지정되어 있음을 확인 LLONG_MIN : long long 형식 변수의 최소값 LLONG_MAX : long long 형식 변수의 최대값 INT_MIN : int 형식 변수의 최소값 INT_MAX : int 형식 변수의 최대값 참고 자료 1 : https://docs.microsoft.com/ko-kr/cpp/c-language/cpp-integer-limits?view=msvc-170 C 및 C++ 정수 제한 자세한 정보: C 및 C++ 정수 제한 docs.microsoft.com
우선 순위 큐 (Priority Queue) 우선 순위 큐는 큐나 스택과 비슷한 축약 자료형이다. 예를 들면 일반적인 큐는 선입 선출의 특성이 있고 스택은 후입 선출의 특성이 있다. 또한 우선 순위 큐는 힙이라고 생각을 하는데 이는 오류이다. 우선 순위 큐를 구현하는 방식에 따라 다양한 방법으로 구현 가능하다. 우선 순위 큐를 배열이나 연결리스트로 구현하지 않는 이유는 아래와 같다. 1. 배열로 구현한 경우 우선 순위가 중간인 데이터가 삽입되는 경우 데이터가 삽입되는 위치 부터 모든 데이터를 한칸씩 뒤로 미뤄야하는 문제가 발생하며 시간 복잡도(time complexity)가 O(n)이다. 2. 연결리스트로 구현한 경우 우선 순위가 중간이 데이터가 삽입되는 경우 데이터가 들어갈 위치를 탐색해야하는데 O(n)만큼 걸린다. 3. 힙으로 구현한 경우 힙은..
prev_permutation(), next_permutation() #include 해더에 정의 되어 있으며 permutation 의 뜻은 순열이다. 함수명 그대로 prev_permutation은 이전의 큰 순열로 요소 순서를 재정렬한다. 함수명 그대로 next_permutation은 다음으로 큰 순열로 요소 순서를 재정렬한다. 아래는 next_permutation()과 prev_permutation()이해를 돕기 위한 예제 코드와 해당 결과이다. 참고 자료 1 : docs.microsoft.com/ko-kr/cpp/standard-library/algorithm-functions?view=msvc-160#prev_permutation 함수 자세한 정보: 함수 docs.microsoft.com 참고 자료 2 : docs.microsoft.com/ko-kr..
strftime() 시간이나 날짜를 문자열로 표현하는 함수를 소개하고자한다. C : #include C++ : #include Function Name : strftime 3번째 인자인 Format은 아래와 같다. 마지막으로 사용 예시이다. 참고 자료 1 : https://modoocode.com/122 C 언어 레퍼런스 - strftime 함수 modoocode.com