본문 바로가기
반응형

분류 전체보기1305

[C++] rvalue reference rvalue referencervalue 등호(=) 오른쪽에만 올 수 있는 것lvalue 등호(=) 오른쪽/왼쪽 모두 올 수 있는 것  [예제] lvalue와 rvalueint main(){ int v = 0; v = 100; // ok (v = lavlue) 20 = v; // error (20 = rvalue)}[예제] lvalue reference• lvalue만 가리킬 수 있다.• rvalue에 사용하면 errorint main(){ int v = 0; int& r1 = v; // ok int& r2 = 100; // error}  [예제] const lvalue refenece• lvalue와 rvalue 모두 가리킬 수 있다.int main(){ int v = 0; //.. 2025. 1. 27.
[C++] constexpr 키워드 constexpr• 컴파일 시간에 결정되는 상수 값• C++11 에서 도입된 문법• 템플릿 인자로 사용 가능• 상수식 계산, 배열 크기 정의 등 컴파일 시간에 최적화되는 코드 작성에 유용  const 키워드 비교값 초기화 이후 변경할 수 없다는 것에서는 동일하다.#include void main(){ const int x = 5; x = 3; // error constexpr int y = 6; y = 2; // error}  Q) 그렇다면 어떤 차이가 있을까?상수값은 컴파일, 실행 시점 등 정해지는 시기가 다를 수 있다.#include void main(){ const int x = 5; int arr1[x]; // ok int temp = 3; const .. 2025. 1. 26.
[C++] static_cast 사용 방법 및 필요성 static_cast 필요성C 언어에서도 type casing 가능하지만논리적으로 위험한 캐스팅을 대부분 허용해서개발자 의도 인지 실수 인지 구분하기 어렵다.  [예제 코드]void* -> 다른 타입으로 캐스팅하는 것은위험하기 보다 필요한 캐스팅에 해당 하다.#include int main(){ // C Style int* p = (int*)malloc(sizeof(int) * 100); free(p); }  하지만int* -> 다른 타입(double*) 캐스팅 하는 것은4 Byte 할당한 곳에 8Byte 담는 것이기 때문에의도치 않은 결과를 야기할 수 있다.int main(){ int N = 100; double* p = (double*)&N; *p = 3.14;}static_cast논.. 2025. 1. 26.
[C++] 람다 표현식 lambda expression 람다 표현식 lambda expression• C++11 도입 • 익명의 함수(객체) 생성 • 함수 주소가 필요한 위치에 함수 구현 자체 표기 • auto 변수에 함수처럼 사용 • 특정 상황에서 일반 함수보다 빠르다. • 지역 변수 캡처 (capture local variable)[예제] 람다 표현식 적용 내림 차순 정렬할 때 sort 함수에 cmp 함수를 인자로 주었다.#include // 내림 차순bool cmp(int a, int b) { return a > b; } int main(){ int x[5] = { 1, 3, 5, 2, 4 }; std::sort(x, x + 5, cmp); for (auto v : x) { printf("%d ", v); // 5, 4, 3, 2, 1 }}  📌 .. 2025. 1. 25.
[C++] const_cast 필요성 및 활용 const_cast 필요성C언어 캐스팅으로 const 주소를 받아서값을 다르게 해볼 수 있다.#include int main(){ const int c = 100; int* p = (int*)&c; *p = 5; std::cout   엄격한 제한을 두지 않는 C Style Casting 이기 때문에개발자가 의도한 것인지 분명하지 않다.const_cast 활용C++에서는 const_cast 활용하여상수성을 제거할 수 있다.(static_cast와  reinterpret_cast 에서는 error 발생)int main(){ const int c = 100; int* p = const_cast(&c);}  C++에서는 casting 마다 역할이 있기 때문에필요하다면 각 역할에 맞게 중첩 캐스팅 해볼.. 2025. 1. 22.
[C++] reinterpret_cast 필요성 및 사용 방법 reinterpret_castreinterpret_casttype_id>(expression);→ reinterpret_cast바꿀 타입>(대상); • 메모리 재해석 • 서로 다른 타입 주소 캐스팅 • 정수 ↔ 주소 사이 캐스팅 C++에서는 주로 static_cast 활용하는데 다른 타입으로 변환하며 error 발생한다.#include int main(){ int harbang = 100; char* p = static_cast(&harbang); // error char& r = static_cast(harbang); // error}  아래와 같이 다른 타입으로 캐스팅 시 활용된다.#include int main(){ int harbang = 100; // int -> char ch.. 2025. 1. 21.
[C++] [STL] Vector 사용 방법 Vector 동적으로 원소를 추가하고 크기를 자동으로 늘려준다.C++ 표준 라이브러리(STL) → #include  - front() : 첫 번째 원소- back() : 마지막 원소- begin() : 첫번째 위치- end() : 마지막의 다음 위치- size() : 원소 개수- capacity() : 할당된 공간 크기- push_back(value) : vector 끝에 원소 삽입- pop_back() : 끝에 있는 원소 삭제- insert(index, value) : index 위치에 원소 삽입- erase(iter) : vector의 iter 위치의 원소 삭제- erase(iter1, iter 2) : [iter 1, iter 2) 앞 까지 원소 삭제 - resize(size), resize(siz.. 2025. 1. 20.
[C++] 레퍼런스 Reference 레퍼런스 (reference, 참조)이미 존재하는 변수에 추가적인 별칭 부여#include int main(){ int n = 10; int& r = n; r = 20; // 값 변경 std::cout   C 언어에서는 void swap(int* p1, int* p2) 와 같이call by pointer 방식을 사용했다면 C++에서는 void swap(int& r1, int& r2) 와 같이call by reference 형태가 가능하다.포인터 방식보다는 간결하게 코드를 작성할 수 있다. #include #include void swap(int* p1, int* p2){ int temp = *p1; *p1 = *p2; *p2 = temp;}void swap(int& r1, int& r2){ int te.. 2025. 1. 19.
[C++] Lambda expression 지역 변수 캡처 람다표현식 지역 변수 캡처capture local variable  점수 배열에서 70점 이상 filter 한다고 생각해보자.#include void foo(int n){ if (n >= 70) { printf("%d ", n); }}int main(){ int score[] = { 90, 30, 60, 70, 20, 10 }; std::for_each(score, score + 6, foo);}  람다 표현식으로 간결하게 표현할 수 있다.#include int main(){ int score[] = { 90, 30, 60, 70, 20, 10 }; std::for_each(score, score + 6, [](int n) { if (n >= 70) printf("%d ", n); });}  📌 [.. 2025. 1. 18.
[티스토리] 2024년 블로그 수익 공개 2025년 새해를 맞이하며2024년 수익을 정리해 보았다. 활동성은 줄었지만블로그 활동을 계속해서 하고 있긴 했다. But기술 블로그는 Ghat GPT로 인해 큰 의미를 잃었고일상 블로그도 5년차가 되니 흥미를 많이 잃은 상태이다. 1년간 수익 통계를 내봤을 때,그 결과가 더 흥미를 잃게 하는 것 같기도 하다. 📌 [수익] 2023년 티스토리 블로그 수익 공개 [수익] 2023년 티스토리 블로그 수익 공개2023년 블로그 수익 새로운 한 해를 시작하면서 2022년 블로그 수익에 이어서 2023년 블로그 수익을 확인해보았다. [후기] 티스토리 블로그 1년 수익 공개 수익형 블로그 운영하면서 주변 사람들이zoosso.tistory.com  [2024년] 블로그 1년 수익  한달 평균 수입▶ 528,878 .. 2025. 1. 16.
반응형