본문 바로가기
반응형

C++/C++노트6

[C++] const 정리 const란? const란 변수의 값을 상수임을 지정하고 프로그래머가 수정하지 못하도록 컴파일러에게 지시하는 키워드 const를 사용하게 되면 다음과 같이 값을 수정하려고 할 때 오류를 발생시킨다. 수정하면 안되는 상수를 수정하는 것이므로 오류가 발생하게 된다. 이를 잘 사용하게 되면 실수로 수정하여 프로그램을 망치는 일을 방지할 수 있다. 포인터와 const 포인터 변수에도 const 키워드를 사용할 수 있다. 포인터 변수에 const를 사용하게 되면 위와 같이 *연산자를 사용해 간접참조를 하여 값을 변환하려고 할 때 오류를 발생시킨다. 하지만 여기서 const는 const int*가 아닌 const int에 적용되기 때문에 주소 값은 변경이 가능하다. 상수 포인터 상수 포인터를 사용하면 const가 .. 2023. 3. 7.
(C++) Array std::array std::array는 고정된 크기의 배열을 담고 있는 컨테이너입니다. 이 컨테이너는 마치 C언어에서의 배열인 T[N]과 비슷하게 작동하고 배열과 같이{}를 통해 초기화를 할 수 있습니다. 다만 한 가지 차이점은 C배열과는 다르게 배열의 이름이 T*로 자동 형변환 되지 않는다는 차이점이 있습니다. std::array를 통해서 기존의 C 배열과 같은 형태를 유지하면서 (오버헤드가 없습니다), C++ 에서 추가된 반복자라던지, 대입 연산자 등을 사용할 수 있습니다.(또한 algorithm헤더파일에 정의된 함수 등을 사용할 수 있다는 장점도 있습니다,) 생성자 std::array는 Aggregate 타입이기 때문에 aggregate 초기화 방식으로 사용합니다. 하나 하나 대입하며 초기화를 할.. 2022. 8. 2.
C++ 토큰 (Tokens) 토큰이란 숫자나 연산자를 비롯해서 우리가 한 단위(unit)로 생각하는 무언가를 나타내는 문자열이다. 표현 방식은 (kind, value)이고 대부분의 텍스트 분석에서 기초가 된다. 종류 부동소수점 리터럴 : 3.14, 0.274e2, 42등 연산자 : +, -, *, /, % 괄호 : (, ) 토큰 구현 Token은 일종의 타입으로 변수를 정의하거나 값을 저장할 때 쓸 수 있으며, kind와 value 두 부분으로 이뤄진다. class 키워드는 '사용자 정의 타입'을 의미하며, 0개 이상의 멤버를 포함하는 타입을 정의한다. Token을 정의하고 Token의 객체를 통해 멤버 접근 표기법인 객체_이름.멤버_이름을 사용해 멤버에 접근한다. 이처럼 복사 초기화, 대입 등 Token은 복사도 가능하다 2022. 7. 21.
[C++] sort <algorithm> 사용법 정리 sort는 헤더파일에 있고 정렬을 해주는 함수이다. sort(start, end)는 [start, end) 범위에 있는 인자(element)를 (default)오름차순으로 정렬 열린 괄호 end는 포함하지 않는 구간이므로 end 전까지 정렬할 수 있다. 평균 시간 복잡도는 n log n(최악의 경우에도 보장)이고 기반은 quick sort(퀵 정렬)이다. start와 end 인자만 넣는다면 default값인 오름차순으로 정렬되고, 3개의 인자를 넣을땐 함수를 정의해서 함수를 기준으로 정렬을 한다. 간단한 예제 출력 : 1,2,3,4,5,6,7,8,9,10 C++Reference 예제 https://cplusplus.com/reference/algorithm/sort/ sort - C++ Reference.. 2022. 7. 18.
카운팅 정렬(Counting Sort) 카운팅 정렬이란? 카운팅정렬은 값을 비교해서 정렬하는 방식이라기 보다는 값의 갯수를 세고 그 갯수에 따라서 위치를 성정하는 방식이다. 동작 원리는 다음과 같다. 3,2,2,3,1 와 같은 Array(배열)가 있을때 3 2 2 3 1 1. 각 데이터의 갯수를 모두 카운트 해준다. - 위의 경우 Count[3] = 2; Count[2] = 2; Count[1] = 1가 된다. 2. 누적합을 계산하는 방식으로 1부터 최대값까지 누적 합하여 계산을 해준다. - 예를 들면 Count[1] = Count[1] + Count[0] = 1 Count[2] = Count[2] + Count[1] = 2 + 1 = 3 Count[3] = Count[3] + Count[2] = 2 + 3 = 5 따라서 Count[1] = .. 2022. 7. 8.
범위 지정 연산자 :: c++에서 ::는 범위 지정 연산자로서 함수나 변수명을 범위에 따라 구분하여 사용하고 싶을 때 사용된다. 여러 범위에서 사용된 식별자(identifier)를 식별하고 구분하는데 사용하는 연산자. 1. ::식별자 범위 지정 연산자를 변수의 이름 앞에 붙이면 전역변수로 사용하는 의미가 된다. 전역 변수에서 선언된 것에 직접 접근할 수 있다. 특히 같은 이름의 변수로 전역변수와 지역 변수가 선언 되있을 경우에 지역변수에 의해 무시된 전역변수에 접근할 수 있게해준다. 예를 들면 a라는 변수가 지역변수와 전역 변수로 있을 있을때 범위 지정 연산자를 통해 전역 변수에 접근할 수 있다. 2. 클래스명 :: 실별자 클래스에 있는 함수등을 사용할 때 사용하며 클래스에 접근 할때 범위 지정 연산자를 통해 접근한다. 3. .. 2022. 7. 4.
반응형