전체 글330 (c++11) lambda lambda, 람다 표현식 / 람다 함수. *이름이 없어서 익명 함수라고도 불린다. 코드를 깔끔하게 만들 수 있다. [캡처 블록] (매개변수) -> 리턴 타입 { 본문 } 캡처 블록(생략 가능) : 스코프에 있는 변수를 캡처하는 방식을 지정, 본문에서 그 변수에 접근할 수 있게 만든다. [&] _ 외부의 모든 변수들을 레퍼런스 형태로 캡처 [&var] _ 외부에 정의되어 있는 변수를 레퍼런스 형태로 캡처 [=] _ 외부의 모든 변수를 복사한 값으로 캡처 [=var] _ 외부의 정의되어 있는 변수를 복사한 값으로 캡처 [this] _ 현제 객체를 캡처 [*this] _ 현제 객체의 복사본을 캡처 매개변수(생략 가능) : 람다 표현식에 대한 매개변수 록록. 리턴 타입(생략 가능) : 람다 표현식의 리턴 타입.. 2023. 2. 8. (C++11) std::move 객체 a 를 b,c 로 복사할 때, a 가 필요없는 경우가 보장되면 복사과정에 대한 비용을 줄일 수 있다. string a = "std::move"; cout 2023. 1. 31. (C++11) alignas alignas(n) 지정한 수의 배수만큼 구조체가 할당된다.(1 or 2 의 배수로 설정해야함) struct alignas(32) Alignas { int i4;// 4 byte char c[3];// 3 byte short s2;// 2 byte }; Alignas al; cout 2023. 1. 18. byte padding(바이트 패딩) 바이트 패딩 성능향상을 위해서 클래스나 구조체의 경우, 가장 큰 사이즈를 차지하는 자료타입에 맞춰 현재 데이터타입 뒤에 임의의 바이트를 추가하여 CPU가 메모리 공간에 접근하기 용이하게 해준다.(컴파일러의 최적화 기능) class BytePadding { int i4;// 4 byte char c[3];// 3 byte short s2;// 2 byte }; BytePadding bt; cout 2023. 1. 18. printf 출력 형식 %d : int 값을 부호있는 10진수로 출력. %i : int 값을 부호있는 10진수로 출력. %u : int 값을 부호없는 10진수로 출력. %X : int 값을 부호없는 16진수로 출력. '0' ~ '9' / 'A' ~ 'F' %x : int 값을 부호없는 16진수로 출력. '0' ~ '9' / 'a' ~ 'f' %o : int 값을 부호없는 8진수로 출력. '0' ~ '9' / 'A' ~ 'F' %p : 포인터 값을 16진수로 출력. %s : 문자열 출력. %c : int 값을 문자로 출력. %C : int 값을 문자로 출력. %f : double 값을 소수로 출력. (12.345678) %e : double 값을 지수로 출력. (12.34567e+001) %E : double 값을 지수로 출력... 2023. 1. 6. (C++11) chrono OS 독립적으로 정밀한 시간 측정 가능. 나노초 단위까지 측정 가능. 특정 연상 전후로 time_point를 측정하고, time_point 차이를 이용하여 실제 연산 시간을 계산한다. *프로그램 동작 시간을 제대로 측정하려면 VisualStudio 에서 Release 모드로 빌드해야 한다. 에 정의되어 있음. auto start = chrono::system_clock::now(); // code auto end = chrono::system_clock::now(); auto msec = chrono::duration(end - start).count() * 1000; cout 2023. 1. 4. 이전 1 ··· 3 4 5 6 7 8 9 ··· 55 다음