C++

    void* 포인터 크기

    각 시스템마다 차이가 있다. 16비트 - 2 바이트 32비트 - 4 바이트 64비트 - 8 바이트 #include int main() { void *ptr; printf("The size of pointer value : %d", sizeof(ptr)); return 0; } 또는 #include using namespace std; int main() { cout

    [C++] string(문자열) 클래스 변환(atoi, c_str()) 등 정리

    1) 함수 설명 int atoi(const char* str) 헤더파일(C) : 헤더파일(CPP) : 설명 : C style의 문자열을 입력받아서 int (숫자) 타입으로 변환하여 리턴한다. std::string c_str() 반환형이 char * 이므로, 해당하는 string의 첫번재 문자의 주소값(포인터)를 반환한다. 예제 헤더파일 : , , 이름공간 : using namespace std; char* > string char * cStr = "Cstring"; string cppStr = cStr; cout

    [C/C++] atoi, atof, atol 함수 (char* to int), 문자열 > 값 타입

    1. atoi, atof, atol 함수 이름의 기원 atoi 함수를 살펴보면 a - to - i 이렇게 나눌 수 있다. a = char(ASCII), i = int 로 보면 char(ASCII) to integer 라는 이름으로 풀 수 있다. 즉. char 타입을 int 타입으로 변경한다. atoi = char to int = 문자열을 정수 타입으로 atof = char to double = 문자열을 실수 타입으로 atol = char to long int = 문자열을 long 정수 타입으로 중요한것은 여기서 char는 char[N], char* 로 표현이 되는 문자열을 말한다. C++ 에서는 string 클래스에 의해서 문자열을 string으로 표현할 수 있는데, C언어에서는 string 클래스가 존..

    [C++] stoi, stof, stol, stod 함수에 대해서 (string to int), 문자열 > 특정 타입

    1. C++에서 string 타입의 문자열을 숫자로 바꾸는 함수들의 이름. ▼ C++11 부터 아래 함수들을 사용할 수 있다. stoi = string to int stof = string to float stol = string to long stod = string to double stoul = string to unsigned int stoll = string to long long stoull = string to unsigned long long stold = string to long double 2. C++ stoi, stof, stol, stod 함수 원형과 매개변수가 뜻하는 것 ▼ 함수 원형 1) 정수형 int stoi(const string& str, size_t* idx = 0, i..

    [C++] to_string 함수에 대해서, 특정 타입 > 문자열

    1. std::to_string 함수 원형과 함수 설명 ▼ std::to_string 헤더파일 ▼ std::to_string 함수 원형 string to_string (int num); string to_string (long num); string to_string (long long num); string to_string (unsigned num); string to_string (unsigned long num); string to_string (unsigned long long num); string to_string (float num); string to_string (double num); string to_string (long double num); ▼ std::to_string 함수 ..

    C++ if/switch statement with initializer

    0. 서문 지금까지의 C++에서 if 또는 switch의 평가식에 사용되는 변수는 미리 선언되고 적절히 초기화된 상태여야 한다. std::map에 원소를 추가하고 이에 대한 예외 처리를 하는 아래 예제가 일반적인 샘플이라 할 수 있다. #include #include int main() { std::map map; map["hello"] = 1; map["world"] = 2; // 일단 insert를 수행하고 결과 pair를 반환받아야 한다. auto ret = map.insert({ "hello", 3 }); // 그러고 나서, pair의 2번째 요소를 체크 if (!ret.second) std::cout

    C++ 모듈 (Module)

    정의 기존의 #include 방식인 Translation Unit 방식과는 다른, 별개와 컴파일되는 소스 코드 파일의 집합이다. Header파일을 사용하면서 생겨나는 많은 문제를 제거하거나 줄이고, 컴파일 시간을 단축하기도 한다. 선언된 모든 매크로, 전처리 지시문과 export 하지 않는 이름(names)들은 표시되지 않으며, 컴파일 할 때 영향을 주지 않는다. 또한 순서에 관계 없이 가져올 수 있다. (include, import) Module을 한 번 컴파일한 후에는 export된 모든 형식(Type), 함수 및 템플릿을 이진파일에 저장한다. 이 파일은 이전의 헤더 파일들보다 훨씬 빠르게 처리될 수 있다. 기존의 C++ 빌드 과정 C++ 프로그램의 빌드 과정은 전처리, 컴파일, 링크로 구성된다. 전..

    [골4] 9252 - LCS 2

    #include #include #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0), cout.tie(0); string str1, str2; cin >> str1 >> str2; str1 = ' ' + str1; str2 = ' ' + str2; int n = str1.size(), m = str2.size(); vector v(n, vector(m)); stack s; for (int i = 1; i < n; i++) { for (int j = 1; j < m; j++) { if (str1[i] == str2[j]) v[i][j] = v[i - 1][j - 1] + 1; ..

    C++ 공용체(union) 개념과 통신에서의 사용 이유

    union 정의 union은 struct와 유사하지만 union의 변수 중 가장 큰 변수의 메모리를 모든 변수가 공유한다는 점에서 다르다. 같은 변수를 가지는 struct와 union의 size를 출력해보면 아래와 같이 결과가 다른것을 확인할 수 있다. typedef struct sizeTest_struct { int a;// 4byte double b;// 8byte }sizeTest_struct; typedef union sizeTest_union { int a; double b; }sizeTest_union; int main() { sizeTest_struct s; sizeTest_union u; printf("struct size : %d\r\n", sizeof(s));// 16 printf("u..

    C++ 함수 객체 (Functor) / () 연산자 오버로딩

    추가 글 : 함수 객체 (Fuction Object) 템플릿 / 람다식 — A Game Client Programmer (tistory.com) 함수 객체 (Fuction Object) 템플릿 / 람다식 장점 : 다른 멤버 변수와 멤버 함수를 가질 수 있고 일반 함수에서 하지 못하는 지원을 받을 수 있습니다. 함수 객체의 서명이 같더라도 객체 타입이 다르면 서로 전혀 다른 타입으로 인식합니다 devshovelinglife.tistory.com 콜백 메커니즘 개념을 설명하기 위해선 '서버 코드'와 '클라이언트 코드'의 개념이 필요하다. 서버 코드: 기능이나 서비스를 제공하는 코드 클라이언트 코드: '서버 코드'가 제공해주는 기능이나 서비스를 사용하는 코드 Print() 함수는 출력 기능을 제공하는 '서버 ..