본문 바로가기

C & C++

(3)
[C++] 재귀함수를 이용한 조합 조합(combination)은 특정 집합에서 순서를 고려하지 않고 선택한 부분집합을 의미합니다. 이 글에서는 재귀함수를 이용한 조합 생성 코드를 설명합니다.함수 정의void combi(int start, vector b) { if (b.size() == k) { print(b); return; } for (int i = start + 1; i 주요 요소start: 현재 조합에서 다음 요소를 선택하기 시작할 위치를 의미합니다.b: 현재까지 선택된 요소들을 저장하는 벡터입니다.k: 선택할 요소의 개수입니다.n: 선택 가능한 전체 요소의 개수입니다.print(b): 완성된 조합을 출력하는 함수입니다.작동 원리조합의 완성 조건:if (b.size() == k) 부분에서 ..
[C++] 효율적인 문자열 분할(split) 함수 구현 C++ 표준 라이브러리(STL)는 문자열 분할(split) 함수를 기본적으로 지원하지 않습니다. 그러나 문자열을 구분자를 기준으로 분할하는 작업은 많은 프로그래밍 문제에서 자주 요구됩니다. 따라서 우리는 이 작업을 효율적으로 수행할 수 있는 사용자 정의 split 함수를 작성해야 합니다. 이번 글에서는 이를 위한 빠르고 효율적인 split 함수 구현 방법을 소개하고, 상수 참조의 이점과 성능 최적화 기법을 함께 설명합니다.상수 참조(const reference)란?참조(reference): C++에서 참조는 특정 변수의 별명을 만들어 줍니다. 즉, 참조는 변수 자체가 아니라 그 변수에 대한 별명입니다.상수(const): 상수는 값을 변경할 수 없음을 의미합니다. const 키워드는 해당 변수나 객체가 변..
[C89] 포인터 목차 1. 포인터 2. 주소 연산자 3. 역참조 연산자 4. 널 포인터 5. 포인터 연산 6. 포인터와 const 7. 포인터 배열 포인터 포인터는 메모리 주소값을 저장하기 위한 특별한 변수 구분이 없다면 어떤게 값이고 주소인지 헷갈림 주소 연산자 주소 연산자 & num이란 변수가 있으면 &num은 그 변수가 위치한 메모리 주소 보통 주소 16진수 주소에 저장된 자료형은? int num = 10; int* num_address = &num 위의 예시처럼 선언하여 num_address에 담긴 값에 가면 int형이 저장되어있다는것을 알려줌 포인터는 오른쪽에서 왼쪽으로 읽음 위의 코드를 예로 들면, num_address는 포인터이다. int로 향하는(pointer to an int) 역 참조 연산자 * 주소로..