C++ template
템플릿
쳄플릿이란 자료형을 나중에 지정 될 수 있도록 만들어주는 문법이다.
- 입력된 매개변수에 따라 자료형이 정해지도록 할 수 있다.
- class라고 쓴 자리 대신 typename을 작성해도 작동한다
#include <iostream>
using std::cout;
using std::endl;
template <typename T, typename T2>
class CCC1{
T x;
T2 y;
public:
CCC1(T xx, T2 yy) {x=xx;y=yy;}
void Print(){ cout<<x<<','<<y<<endl;}
};
int main(){
CCC1<int, int> c1(10,20);
CCC1<double, double> c2(3.5,5.5);
CCC1<char, const char *> c3('I', "Love");
c1.Print();
c2.Print();
c3.Print();
return 0;
}
STL
C++ 표준 라이브러리 일부분으로 자료구조 알고리즘을 미리 만들어 둔 라이브러리다.
컨테이너
- 객체를 저장하는 객체나 클래스
- 시퀀스 컨테이너
- vector, deque, list
- 연관 컨테이너
- set, multiset, map, multimap
- 연속 메모리 기반 컨테이너
- 데이터 여러개를 하나의 메모리 단위에 저장
- 배열 기반
- vector, string, deque
- 노드 기반 컨테이너
- 데이터 하나를 하나의 메모리 단위에 저장
- list, set, multiset, map, multimap
반복자
- 컨테이너에 저장된 요소를 순화하고 접근하는 객체나 클래스
알고리즘
- 데이터 처리 함수
- find, sort, search
함수 객체
- 함수처럼 동작하는 객체
예외처리
컴파일 에러 외, 런타임 에러를 처리하기 위한 C++의 방법이다
사용법
관련 키워드
키워드 | 의미 |
---|---|
try | 예외를 감시하는 블록으로, main마저 포함할 수 있다 |
throw | 예외가 발생하면 알리고 내용을 담아 던짐 |
catch | 예외를 받아 처리하는 블록 |
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
void Div(double ja, double mo)
{
try{
if (mo == 0) throw mo;
cout<<"결과:"<<ja/mo<<endl;
}
catch(double) {
cout << "cant't div with 0";
}
}
int main()
{
double x, y;
cout <<"분자를 입력하세요=";
cin>>x;
cout <<"분모를 입력하세요=";
cin>>y;
Div(x, y);
return 0;
}