일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- regression
- deep learning
- 오블완
- 티스토리챌린지
- GPT-4
- LG
- 회귀
- LLM
- 분류
- Machine Learning
- OpenAI
- AI
- 해커톤
- gpt
- Classification
- supervised learning
- 딥러닝
- LG Aimers
- LG Aimers 4th
- 지도학습
- ChatGPT
- 머신러닝
- PCA
- Today
- Total
목록Programming Lang/C++ (65)
SYDev
클래스 템플릿 특수화 함수 템플릿을 특수화 하듯이 클래스 템플릿도 특수화를 할 수 있다. 클래스 템플릿을 특수화하는 이유는 특정 자료형을 기반으로 생성된 객체에 대해, 구분이 되는 다른 행동양식을 적용하기 위해서이다. 관련하여 예제를 살펴보자. #include #include using namespace std; template class Point { private: T xpos, ypos; public: Point(T x=0, T y=0) : xpos(x), ypos(y) { } void ShowPosition() const { cout
Point 클래스 템플릿과 배열 클래스 템플릿 Point 템플릿 클래스의 객체를 저장하는 객체는 다음 방법으로 생성할 수 있다. BoundCheckArray iarr(50);//int형 데이터 저장 BoundCheckArray oarr(50);//Point 템플릿 클래스의 객체 저장 BoundCheckArray oparr(50);//Point형 포인터 저장 typedef Point* POINT_PTR; BoundCheckArray oparr(50);//Point형 포인터 저장 그렇다면 이를 이용해 지난 chapter 13의 예제를 확장해보자. 파일명 : PointTemplate.h #ifndef __POINT_TEMPLATE_H_ #define __POINT_TEMPLATE_H_ template clas..
클래스 템플릿의 정의 함수 템플릿과 마찬가지로 클래스도 템플릿화를 통해 별도의 클래스를 정의할 필요가 없어진다. #include using namespace std; template class Point { private: T xpos, ypos; public: Point(T x=0, T y=0) : xpos(x), ypos(y) { } void ShowPosition() const { cout
함수 템플릿 함수 템플릿(function template)은 함수를 만드는 도구이며, 하나의 함수로 다양한 자료형의 함수를 호출할 수 있다. template // template 도 가능 T Add(T num1, T num2) { return num1+num2; } 위 함수의 정의가 함수 템플릿의 예시이다. 함수의 기능 : 덧셈 대상 자료형 : 결정되지 않음 이처럼 같은 기능을 하는 함수로 여러 자료형을 받고 반환할 수 있게 해주는 것이 함수 템플릿이다. 아래 예제를 살펴보자. #include using namespace std; template T Add(T num1, T num2) { return num1+num2; } int main(void) { cout
표준 string 클래스의 분석 표준 string 클래스의 분석을 위해서 자체적으로 String 클래스를 정의해보자. 문자열을 인자로 전달받는 생성자 정의 string 객체를 생성할 때 다음 방식을 사용했는데, string str1 = "I like "; 위 코드는 다음과 같이 해석되므로 string str1("I like"); 문자열을 전달받는 적절한 생성자를 정의해야 한다. (선언과 초기화가 분리되지 않았으므로, 대입 연산자가 아닌 생성자 호출) 생성자, 소멸자, 복사 생성자 그리고 대입 연산자의 정의 string 클래스는 문자열을 저장 및 표현하는 클래스인데, 전달받는 문자열의 길이가 일정하지 않다. 때문에, 생성자에서 동적 할당을 진행하고 이에 따라 소멸자에서 메모리 해제를 해야 한다. 이에 따라..
표준 string 클래스 string 클래스는 C++ 표준 라이브러리에 정리된 클래스 중 하나로, 문자열의 처리를 목적으로 정의된 클래스이다. 헤더파일 을 포함해야 사용할 수 있음 다음은 string 클래스의 사용 예시이다. #include #include using namespace std; int main(void) { string str1="I like "; string str2="string class "; string str3=str1+str2;//operator+의 오버로딩으로 객체간 덧셈연산 cout
배열 클래스 C와 C++의 기본 배열은 경계검사를 하지 않는다. 따라서, 다음과 같은 범위를 벗어나는 코드가 컴파일, 실행이 무리없이 진행되는 문제가 생긴다. int main(void) { int arr[3]={1, 2, 3}; cout
대입 연산자 대입 연산자(=)의 특성은 복사 생성자의 특성과 비슷하므로, 함께 나열하며 설명하겠다. 우선 복사 생성자의 대표적 특성이다. 정의하지 않으면 디폴트 복사 생성자가 삽입된다. 디폴트 복사 생성자는 멤버 대 멤버의 복사(얕은 복사)를 진행한다. 생성자 내에서 동적 할당을 한다면, 그리고 깊은 복사가 필요하다면 직접 정의해야 한다. 다음은 대입 연산자의 대표적 특성이다. 정의하지 않으면 디폴트 대입 연산자가 삽입된다. 디폴트 대입 연산자는 멤버 대 멤버의 복사(얕은 복사)를 진행한다. 연산자 내에서 동적 할당을 한다면, 그리고 깊은 복사가 필요하다면 직접 정의해야 한다. 또한, 다음 상황에서는 복사 생성자가 호출되지만, int main(void) { Point pos1(5, 7); Point po..