본문 바로가기

스터디

(58)
시간복잡도~ 시간복잡도아래 세 개의 함수 명령 수행 횟수는 총 몇 번인가? 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 컨테이너와 같은 대규..
리버싱 엔지니어링 1.1 리버스 엔지니어링리버스 엔지니어링이란?물건이나 기게장치, 시스템의 구조,기능,동작등을 분석하여 그 원리를 이해하며 단점을 보완하고 새로운 아이디어를 추가하는 일련의 작업. 1.2 리버스 코드 엔지니어링리버스 코드 엔지니어링은 리버싱의 소프트웨어 분야를 일컫는다. 1.2.1 리버싱 방법실행파일(바이너리) 분석 방법에는 두가지 방법이 있다. 동적 분석과 정적 분석이 있는데, 1) 정적 분석 파일의 겉모습을 관찰하여 분석하는 방법이다. 정적분석에서는 파일을 실행하지 않고, 파일의 종류(EXE,DLL,DOC,ZIP 등) 헤더(PE) 정보 Import/Export API 내부 문자열, 실행압축 여부, 등록정보, 디버깅 정보, 디지털 인증서 등의 다양한 내용을 확인하는 것이다. 또한 디스 어셈블러(Disas..
for문 한개와 두개의 성능차이. (10^5)^2 --> 이중포문 (10^5)*2 --> 단일포문 2개 의 차이.