c++
[C++] 포인터와 배열
포인터와 배열 포인터는 메모리 주소에 직접 접근하므로 배열 등의 자료구조를 처리하는 데 매우 유용히 사용된다. 배열의 주소 배열은 여러 개의 데이터가 데이터형의 크기만큼 순차적으로 메모리 공간에 할당된다. 배열 원소의 주소값 확인 #include int main() { int arr[5] = { 1, 2, 3, 4, 5 }; for (int i = 0; i < 5; i++) { std::cout
[C++] 포인터(Pointer) 기초
포인터(Pointer) 다른 변수, 혹은 그 변수의 메모리 공간주소(시작 주소값)를 가리키는 변수 포인터 선언 포인터를 선언하는 방식은 2가지가 있으며, 아래와 같다. 둘 중 무엇을 쓰더라도 같은 동작을 한다. (포인터에 주소값이 저장되는 데이터의 Type) *(포인터 변수 명); # asterisk(*)가 변수 명 앞 (포인터에 주소값이 저장되는 데이터의 Type)* (포인터 변수 명); # asterisk(*)가 타입 뒤 포인터에 타입이 있는 이유는 컴퓨터에 메모리 공간을 얼마나 할당해야 할지 알려주기 위함이다. int *ptr; int* ptr; & 연산자 데이터의 주소값을 알고 싶을 때 사용하는 연산자 '&변수명' 의 형태로 사용된다. #include int main() { int a = 7; i..
[C++] 반복문
반복문 프로그램 소스 코드 내에서 특정한 부분의 코드가 반복적으로 수행될 수 있도록 하는 구문 while 문 C++에서 사용되는 반복문 중 하나 while 문은 다음과 같이 작성한다. while (/*조건식*/){ /*실행구문*/ } while (1), while (true) 처럼 무한 루프 반복문을 생성할 수 있다. 기본 while 문 #include int main() { int sum = 0; int i = 1; // i가 10이 될 때까지 더하는 반복문 while (i
[C++] 조건문
조건문 조건에 따라 실행이 달라지게 할 때 사용되는 문장 if 문 C++에서 사용되는 조건문 중 하나이다. if 문은 다음과 같이 작성한다. if (/*조건식*/) { /*실행구문*/; }else if (/*조건식*/) { /*실행구문*/; }else { /*실행구문*/; } 모든 조건문을 계속 판단하면서 branch가 진행되기 때문에 속도가 switch보다 느리다. 메모리의 사용을 줄이고자 하는 경우에는 if 문이 switch문보다 좋은 성능을 보인다고 한다. 조건의 수가 적을 때는 if 문을 사용하는 것이 유리 #include int main() { int x = 9; if (x >= 10) { std::cout
[C++] 소수점 자릿수 정하기
소수점 자릿수 정하기 파이썬과 C는 간단하게 소수점 자릿수를 정하여 출력할 수 있지만 C++은 생각보다 번거롭다. precision을 이용하며, 소수점 이하는 반올림된다. #include int main() { const double PI = 3.1415926535; // 1. 일반 출력 std::cout
[C++] Hello World 출력하기
Hello World 프로그래밍을 배울 때 가장 처음으로 구현해보는 코드일 것이다. iostream 헤더를 이용한다. #include int main() { std::cout
[C++] STL 자료구조
STL Standard Template Library STL은 다양한 자료형으로 사용할 수 있도록 만든 함수 템플릿이나 클래스 템플릿이 기초가 된다. 여기서는 STL에 있는 자료구조 클래스를 이용한다. 연결리스트(Linked List) 어떤 데이터 덩어리(이하 노드 Node)를 저장할 때 그 다음 순서의 자료가 있는 위치를 데이터에 포함시키는 방식으로 자료를 저장 #include 시간복잡도 삽입/삭제: O(1) 탐색: O(n) 데이터의 추가/삭제가 많은 경우에는 연결 리스트를 사용하면 좋다. 싱글 연결 리스트: next 포인터만 가짐 이중 연결 리스트: next 포인터와 prev 포인터를 가짐 원형 이중 연결 리스트: 이중 연결리스트와 동일한 형태이지만 마지막 노드의 next 포인터가 헤드 노드(맨 앞 ..
[C++] 정렬 알고리즘
Sort() 함수 C++의 algorithm 헤더에 포함되어 있음 #include #include #include using namespace std; int main() { vector num_list = {2, 1, 5, 4, 3}; sort(begin(num_list), end(num_list)); for (int i=0; i