본문 바로가기
반응형

전체 글1299

[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.
[C++] 후위 반환 타입 (suffix return type) 후위 반환 타입 (suffix return type)• 함수 반환 타입을 뒤쪽에 적는 표기법• C++11 부터 등장• 「trailing return type」 라고도 한다.  [예제] 후위 반환 타입 (suffix return type)auto add(int a, int b) -> int{ return a + b;}int main(){ int ret = add(1,2);}  Q) 왜 새로운 표기법이 필요할까?기존 형식도 개발자에게 큰 이질감은 있지 않았다.그럼에도 후위 반환 타입이 필요한 경우는복잡한 함수 템플릿이나 람다 표현식에 유용하기 때문이다.  int, double 등 타입 추론할 수 있게 인자를 주면 문제 없지만인자가 서로 다른 타입으로 주어지는 경우 문제가 생긴다.#include temp.. 2025. 1. 15.
[C++] 함수 삭제 function delete 함수 삭제 (Delete Funciton)int GCD(int a, int b){ if (b == 0) { return a; } GCD(b, a % b);}int main(){ printf("%d\n", GCD(10, 4)); // 2 printf("%d\n", GCD(3.3, 4.4)); // 1}  최대 공약수를 구하는 함수 GCDC++에서는 GCD(3.3, 4.4); 와 같이 호출해도double 형이 int 형으로 형변환되기에 컴파일 문제는 없다.  경우에 따라서는허용하지 않는 Case에 대해 컴파일 에러 시키는 것이 필요할 수 있다.함수 내부에서 그런 Case를 처리하는 것은 지저분해지기 때문에다른 방법으로 아래와 같이 delete 키워드를 활용할 수 .. 2025. 1. 14.
[C++] STL capacity와 size 함수 차이 capacity > size 메모리 추가 작업이 빠르게 원소를 할당할 수 있다.capacity 개념이 왜 있는 것일까?  clear()는 메모리 공간을 제거하지 않고 size 값만 0으로 만든다resize(0)과 동일하다. Q) v1, v2 중에 어떤 것이 더 빠를까?#include #include using namespace std;int main(){ int count = 100000; vector v1; for (int i = 0; i v2; v2.reserve(count); for (int i = 0; i   비교하기에는 count 수치가 작긴 하지만..capacity 잡지 않고 push_back 하는 것과resize로 capacity 확보한 다음 push_back 하는 것인데메모리 공간이 여.. 2025. 1. 13.
[C/C++] extern 키워드 [main.cpp]  ←  [func.h] + [func.c]main.cpp에서 func.h 헤더파일을아래와 같은 형태로 include 한다면 Error 발생한다. [func.h] int harbang(int);[func.c]int harbang(int x){ return x * x;}  [main.cpp]#include "func.h"int main(){ int r = harbang(5);}  Q) Why Error ?컴파일러는 확장자에 따라 언어를 결정한다.그렇기에 각 파일별로 컴파일 후 생성된 .obj 파일을 링커로 결합한다.즉, C와 CPP 컴파일하였을 때 name mangling으로 함수를 제대로 찾지 못한다.  [해결 방법 ①] extern 키워드cpp 파일에게 C언어로 작성된 것이.. 2025. 1. 12.
[C/C++] 함수 template 함수 template 필요성C++에서는 C와 달리 함수 오버로딩으로다른 인자를 가지는 동일한 함수명을 만들 수 있다.💻 함수 오버로딩(Overloading)  💻 함수 오버로딩(Overloading)함수 오버로딩 (overloading) • 동일한 이름의 함수명이 여러개 중복 정의되어 있는 형태 • 함수 파라미터(parameter) 자료형 혹은 개수가 다르다. • C 언어에서는 동일한 이름의 함수 정의를 허용하zoosso.tistory.com [예제] 함수 오버로딩int harbang(int x){ return x * x;}double harbang(double x){ return x * x;}int main(){ harbang(3); harbang(3.4);} 사용자 입장에서는.. 2025. 1. 11.
[C/C++] 문자열 String 문자열 String일반 변수처럼 String 대입하거나 비교하려면문자열 전용 함수를 사용해야 한다.ex) cpy = s, cpy == s → Error#include #include int main(){ char s[] = "harbang"; char cpy[20]; strcpy_s(cpy, s); if (strcmp(s, cpy) == 0) { printf("same string"); }}C 언어에서는 char 배열 또는 const char * 사용했지만 C++에서는 std::string 제공#include #include using namespace std;int main(){ string s = "harbang"; string ggm; ggm = s; if (ggm == s) { printf(".. 2025. 1. 10.
반응형