C++
-
2024.02.29 - templateC++ 2024. 3. 4. 17:58
아래와 같은 함수가 있다. int GetMax(int x, int y) { if (x > y) return x; else return y; } 정수 둘을 받아 높은 값을 반환하는 함수다. 실수 둘을 비교하는 함수도 만들고 싶다. float GetMax(float x, float y) { if (x > y) return x; else return y; } 음 좋다. short형 둘을 비교하는 함수도 만들고 싶다. float GetMax(short x, short y) { if (x > y) return x; else return y; } 내친김에 double형도... 이런식으로 만들다가는 끝이없다. template를 사용하면 함수의 기능은 유지하되, 자료형은 모호하게 만들 수 있다. #include tem..
-
2024.02.29 - iteratorC++ 2024. 3. 3. 22:08
반복자(iterator)는 포인터와 같은 기능을 한다. 반복자는 컨테이너(vector, 배열, 등등)에 저장되어 있는 원소들을 참조할 때 사용한다. 반복자는 포인터처럼 일반적인 값이 아닌 주소값이 들어간다. vector의 반복자 선언 vector::iterator 반복자이름; vector의 iterator begin(), end() vector의 멤버 함수 begin()은 vector의 첫번째 요소의 반복자(주소값)를 반환한다. end()는 마지막 요소 +1의 반복자를 반환한다. #include #include int main() { std::vector::iterator iter; std::vector vec = { 1,2,3,4,5 }; iter = vec.begin(); std::cout
-
2024.02.29 - vectorC++ 2024. 3. 3. 21:19
vector vector는 자동으로 메모리가 할당되는 배열이라고 할 수 있다. 배열은 생성시 크기를 정해주어야 하고 그 크기가 가변적이지 않지만, vector는 배열과 비슷하지만 크기가 자동으로 늘어날 수 있다. 다만 속도적인 측면에서 배열에 비해 떨어진다는 단점이 있다. vector의 사용 vector를 사용하기 위해서는 헤더파일을 추가해야한다. vector의 선언은 아래와 같이 이루어진다. std::vector 변수이름; vector는 표준 라이브러리에 있는 클래스이므로 범위 지정 연산자로 std에서 왔음을 밝혀야한다. vector를 생성하는 다양한 예제 #include int main() { //1. 비어있는 vector 생성 std::vector vec1; //2. 기본값이 0으로 초기화된 요소 ..
-
2024.02.28 - class 아주 기본적인 내용C++ 2024. 3. 3. 19:47
클래스는 구조체 비슷한거다. 구조체 처럼 멤버 변수, 멤버 함수를 포함할 수 있는 사용자 정의 데이터 타입이다. class 클래스이름 { 멤버 변수, 멤버 함수.... }; 앞서 배웠던 구조체랑 문법이 똑같음을 알 수 있다. 구조체와 클래스는 기본 접근 제어의 차이가 있다는 점 말고는 거의 같다고 할 수 있다. 구조체는 기본 접근 제한자가 public이며, 클래스의 기본 접근 제한자는 private으로 제한되어 있다. 쉽게 말하면 구조체에 선언된 변수나 함수는 자유롭게 접근 가능하지만, 클래스에 선언된 변수나 함수는 기본적으로 접근할 수 없다. - 구조체와 클래스의 차이 예시 #include struct Str { int strNum = 1; }; int main() { Str str; std::cout
-
2024.02.28 - 키워드, 식별자, namespace, 범위 지정 연산자(::), std, usingC++ 2024. 3. 2. 22:51
키워드(keyword) C++은 자체 사용을 위해 여러가지 특별한 의미를 가진 단어를 예약해놓았다. 이러한 단어를 키워드(keyword)라고 한다. 쉽게 말하면 int, float 같은 자료형 부터, if, while, for 등 편집기에서 다른 색으로 표시해주는 단어들을 키워드라고 할 수 있다. 식별자(identifier) C++에서 변수(variable), 함수(function), 타입(type) 또는 다른 종류의 객체(other kind of object)의 이름을 식별자라고 한다. 쉽게 말하자면, 변수명 같은 것을 식별자라고 한다. 식별자를 만들때는 따라야 하는 규칙이 있다. - 키워드는 식별자가 될 수 없다. - 식별자는 대소문자, 숫자, 문자로만 구성될 수 있다. (특수기호나 공백을 포함할 수..
-
2024.02.27 - 포인터C++ 2024. 2. 27. 18:10
포인터가 무엇인가 포인터(포인터 변수)는 기본적으로 주소를 저장하는 변수다. 우리가 기존에 써왔던 변수는 데이터를 저장하는 변수지만, 포인터는 메모리의 주소를 저장하는 변수다. 포인터는 어떻게 쓰는가 int* ptr; //int *ptr; int형 변수의 주소를 저장하는 포인터(포인터 변수) ptr을 만들었다. 아래처럼 써도 무방하지만, 포인터 변수를 생성할 때와, 나중에 나올 포인터 변수로 역참조를 할때가 헷갈릴 수 있으므로, 위의 방식처럼 사용하도록 하자. 포인터에 값을 넣어보자 int num = 10; int* ptr = # 포인터에는 일반적인 데이터를 저장할 수 없고, 오로지 주소값만 저장할 수 있다. &연산자를 이용해서 num변수의 주소값을 포인터 ptr에 저장했다. 포인터가 실제로 무슨..