일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 언리얼가비지컬렉터
- UE4 커스텀로그
- 정렬
- BFS
- 정렬알고리즘
- 스마트포인터
- unorder_map
- C++최적화
- UE_LOG
- 자료구조
- map
- 델리게이트
- 애셋로드
- 알고리즘
- 언리얼엔진구조체
- 강참조
- C++
- 선택정렬
- enumasByue
- 람다사용정렬
- 프로그래머스
- stl
- 크리티컬섹션
- dataasset
- UELOG
- UML관련
- 약참조
- 데이터애셋
- moreeffectiveC++
- 람다
- Today
- Total
목록C & CPP (88)
기억을 위한 기록들
m.blog.naver.com/PostView.nhn?blogId=kmc7468&logNo=220989121076&proxyReferer=https:%2F%2Fwww.google.com%2F C++에서 RAII가 필요한 이유 2017.4.18 ~ 2017.4.21 김민찬 (C) 2017. kmc7468 all rights reserved. C++에는 RAII라는 독특한 디... blog.naver.com
printf는 C언어를 처음 배울 때 부터 사용하던 익숙한 단어지만 sprintf는 자주 안쓰게 되다보니 낯설어서 적어 둔다. #include #include #include using namespace std; int main() { char arr[20]; char arr2[20]; sprintf(arr, "hello"); //arr에 hello 저장 cout
#include using namespace std; int Compare(const void*_elem1, const void*_elem2) { int * elem1 = (int*)_elem1; int * elem2 = (int*)_elem2; if (*elem1 > *elem2) return 1; else if (*elem1 < *elem2) return -1; else return 0; }//end of Compare int main() { int arr[6] = { 1,2,4,6,10}; int *result; int Target = 6; result =(int*)bsearch(&Target, arr, 5, sizeof(int), Compare); //bsearch(찾는 값 주소, 데이터집합주소,..
#include using namespace std; int Compare(const void*_elem1, const void*_elem2) { int * elem1 = (int*)_elem1; int * elem2 = (int*)_elem2; if (*elem1 > *elem2) return 1; else if (*elem1 < *elem2) return -1; else return 0; }//end of Compare int main() { int arr[6] = { 23,32,8,11,34 ,56}; qsort((void*)arr, 5, sizeof(int), Compare); //qsort(데이터집합주소,요소의개수(크기),데이터요소 하나의크기,비교 수행결과 반환함수포인터) for (auto a ..
Wide character type(확장형 문자 타입) 즉, Unicode를 의미 (2 byte) 8비트로 표현할 수 없는 문자 세트를 처리할 때 사용한다. 이 데이터형은 기반데이터형( underlying type )이라고 불리는 다른 정수형 중 하나와 같은 크기와 부호 속성을 가지고 있다. wchar_t 스트림을 처리하기 위해 wcin 과 wcout 기능을 제공한다. 광폭 문자상수나 광폭 문자 문자열은 그 앞에 L 을 붙여서 나타낼수 있다. wchar_t babo = L'ah'; // 광폭 문자 상수 wchar_t jjindda[ 3 ] = L"jjindda"; // 광폭 문자 문자열 2바이트 wchar_t 를 사용하는 시스템에서는 이 코드가 각 문자를 2바이트 단위로 메모리에 저장한다
생성자와 소멸자 생성자 - 생성자는 객체가 생성되면 자동으로 호출. - 생성자가 정의되어 있지 않으면 컴팡일러는 기본 생성자라고 불리는 생성자를 자동으로 만든다. - 클래스 기본 변수를 초기화하고 싶을때는 실제 객체가 만들어 ㅈ지기전, 생성자 코드의 나머지 부분이 실행되기 전에 값을 할당. ( 상수 혹은 클래스형 필드를 초기화 할때 유용 소멸자 - 객체가 소멸될 때 자동으로 호출. 객체를 삭제하는 작업을 담당. - 인자를 전달할 수 없다.(명시적으로 호출 할 수 있는 메서드가 아니므로) ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 가상함수 ex) class Person{ ... void aboutMe(){ cout
1. Stack(LIFO)(기본 컨테이너 : deque) - 컨테이너는 vector, deque, list를 사용 가능 2. Queue(FIFO)(기본 컨테이너 : deque) - 컨테이너는 vector는 사용불가능 / deque, list 사용 가능 3. Priority_queue(우선순위 큐 구현/기본 컨테이너 : vector) - 내부적으로 STL의 힙 알고리즘 make_heap(), push_heap(), pop_heap() 사용하여 구현. - 임의 접근 반복자를 제공하는 컨테이너(vector/deque) 사용가능
반복자는 포인터를 추상화한 클래스 객체. 포인터가 하지 못하는 더 많은 동작을 수행 할 수 있다. 자료 형식이 있어 효율적인 연산이 가능하듯이 반복자도 각 반복자만의 특징을 가지는 5가지의 반복자가 있다. 1. 입력 반복자(input iterator) : 전방향 읽기 연산 제공 - *iter(읽기) - ->(멤버 읽기) - ++(전방향 이동) - ==,!=(비교) - iterator(iter) 2. 출력 반복자(output iterator) : 전방향 쓰기 연산 제공 - *iter=x(쓰기) - ++ - iterator(iter)(복사생성자) 3. 순방향 반복자(forward iterator) : 전방향 읽기, 쓰기 연산 제공 - *iter - -> - ++ - ==,!= - =(대입) - iterato..
헤더에 정의되어 있는 함수객체는 함수자라는 애칭으로 더 많이 사용되며, opertator() 연산자를 오버로딩한 클래스 객체입니다. 일반 함수 객체 : 특정 기능을 수행하는 함수 객체 - 산술 연산 함수 객체 : 사칙연산 기능을 수행하는 plus, minus, multiplies,divides,modulus,negate 등 - 비교 연산 함수 객체 : 비교 조건자 equal_to, not_equal_to, less, greater, greater_equal, less_equal 등 - 논리 연산 함수 객체 조건자 : 논리 조건자 logical_and, logical_or, logical_not 함수 어댑터(function adapter) - 바인더 : 이항 함수 객체를 단항 함수객체로 변환(bind1st..
1. 원소를 수정하지 않는 알고리즘 - 원소의 순서나 값을 변경하지 않고 원소를 읽기만 하는 알고리즘 (탐색/비교 등) 2. 원소를 수정하는 알고리즘(덮어쓰기 모드로 동작. 삽입모드로 동작하려면 insert_iterator 사용) - 원소의 값을 변경하거나, 목적지 순차열로 원소를 복사하는 알고리즘 (복사/채우기/교환/합병/수정 등) 3. 제거 알고리즘 - 2번 '원소를 수정하는 알고리즘'의 특수한 형태로 원소를 실제로 제거하지 않고 논리적으로 제거(다음 원소로 덮어쓰기)하기 때문에 순차열의 size를 실제로는 변경X(실제로 변경하려면 컨테이너의 erase()함수 사용) (제거/조건제거) 4. 변경 알고리즘(순서 변경) - 순차열의 원소를 서로 교환하거나 이동하여 순차열 원소의 '순서'를 변경하는 알고리..
시퀀스 컨테이너 - 원소가 상대적인 위치(순서)를 유지하므로 가장 앞요소와 뒤 요소를 참조하는 front()/back() 함수 제공 - 컨테이너 끝에 추가/제거 하는 push_back(),pop_back() 멤버함수 제공 시퀀스 컨테이너 종류 1.vector - 배열기반 - 원소가 하나의 메모리 블록에 연속하게 저장(연속 메모리기반) - 원소 추가or삽입 이루어 질때, 메모리 재할당 발생 할 수 있으므로 메모리 할당크기를 알 수 있게 capacity() 멤버함수 제공 - 메모리 크기 예약 reverse() 멤버 함수 - insert()/erase()/push_back() 빈번하게 이루어진다면, 다른 컨테이너 고려 - pop_front()/push_front()는 제공하지 않음. vector에서 매우 비효..