본문 바로가기

스터디/C++

(11)
시간복잡도~ 시간복잡도아래 세 개의 함수 명령 수행 횟수는 총 몇 번인가? 12345678910111213141516171819202122 float Sum(float* a, const int n){ float s = 0; for(inti=0;i
Lambda Expression 12345678910#include #include #include int main(int argc,char *argv[]){ [] () {} ; } Colored by Color Scriptercs 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849#include #include #include #include #include struct Student{ std::string name; int kor; int math; int eng; double average;}; using Student = struct Student; bool Compare(Student& a,Student& b); int..
유니폼 초기화, initializer_list (이니셜라이져 리스트), 123456789101112131415int a = 10;int b(10); // add int c = { 10 }; // int !int d{ 10 }; // int ! auto a = 10;auto b(10); // add auto c = { 10 }; // int ?auto d{ 10 }; // int ? cs Initializer_list ! 1234567891011121314151617181920212223242526#include #include #include int main() { // 10,20,30,40,50 std::vector vInt; vInt.push_back(10); vInt.push_back(20); vInt.push_back(30); vInt.push_back(40); vI..
2진수 표현 방법, 구분자 ' 지원 12345678910111213141516171819202122#include int main() { int a = 10; int b = 065; int c = 0xFF; int d = 0b11011; int e = 2147483647 // 구분자 ' 지원 int f = INT_MAX; // INT_MAX == 2147483647 // 2진수 표현방법 // 1. bitset // 2. Shift Operator // 3. vector }Colored by Color Scriptercs
auto,decltype,nullptr,std:array auto -> 자동 형 (var 같은)컴파일 타임 때 추론되어야 함. decltype(i) j = 5 // j 의 형태를 i 의 형태로 선언.decltype(i+j) k = 10; // k 의 형태를 i+j 의 형태로 선언. --> 함수의 형에도 사용 가능함. auto add(T1 a, T2 b) -> decltype(T1+T2) // decltype 의 사용처 (리턴해야할 타입을 모를 때){......} -> 는 타입을 지정해 주는 연산자중 하나.(람다를 위해 생김) nulltype 은 값.nulltype 의 type 이 nulltype_t nullptr =/= nullptr_t 이제 int a = nullptr 안됨 std:array 는 일반적으로 쓰는 배열 대신에 나온건데,일반적 배열에서 사용하는 ..
R-value, L-value -> Value-type C에서 R-value 는오른쪽에 있는 값. L-value 는왼쪽에 있는 값이다. int a=3; 일 경우 R-value는 3, L-value 는 a 가 된다. C++에서는 R-value는 사라지는 값 L-value는 사라지지 않는 값. l value - 고유하면서 움직일 수 없는 값x value - 고유하면서 움직일 수 있는 값pr value - 순수한 값gl value - 다른 조건 없이 고유하기만 하면 됨 l-value xvalue xvalue pr value 이런식으로 그림이 그려진다. int x-3;const int y = x;int z = x+y;int* p = &x; cout 이렇게 할 경우, 컨테이너에 객체를 삽입할 때 더이상 포인터를 넣지 않아도 됨.--> vector 컨테이너와 같은 대규..
for문 한개와 두개의 성능차이. (10^5)^2 --> 이중포문 (10^5)*2 --> 단일포문 2개 의 차이.
C++ 손건의 흑역사 (재미있는 C++ 문제) double a[2048 * 4] = {0,}, b[2048 * 4] = {1,};double c[2048 * 4] = {0,}, dummy[8],d[2048 * 4] = {1,}; 일 떄, 이중 포문을 돌린다고 했을 떄, 속도 차이가 있을까? 손건: 중간에 더미가 있으면 캐시가 오탐할 확률(?) 이 있으므로 위에가 더 빠르다. 우선 알아야 할 것이 있다. 1. Memeory fragmentation--> 메모리에 적재를 했을 때, 프로그램과 프로그램 사이에 적재 되어 있던 프로그램이 사라졌을 때, 새로 들어갈 프로그램이 빈 공간보다 클 경우에 메모리에 적재되지 못하는 현상을 메모리 단편화 라고 한다. A B -------- --------변수1 -------- 변수2 변수2 -------- 변수1 --..