C++/C++

[C++] STL 핵심, Generic

메카인 2023. 2. 16. 02:32

◆STL(Standard Template Library)

▷자료형에 구애받지 않는 통합 라이브러리를 만들 수 있으며 다른 언어의 Generic보다 좋은 퍼포먼스를 보여준다.

//아래 코드를 클래스 위에 작성한다.
template <typename T>

 

◆STL로 가변 클래스 작성 가능

▷STL은 여러 타입에 대응가능하여 코드의 재사용성이 크게 향상된다.

#include <cstdio>

template <typename T>
class MyClass {
public:
	T value;
};

int main(){
	MyClass<int>* k = new MyClass<int>();
	k->value=1000;
    
	MyClass<std::string>* ms = new MyClass<std::string>();
	ms->value = "Hello world";

}

 

◆STL에서 std::string을 사용할 떄 함수인자로 레퍼런스로 줄 때, const T& str과 같이 const를 붙여줘야 한다

▷reference로 준다는것은 바꿀수 있다는 의미이기 때문이다.

 

◆STL은 선언과 정의를 분리할 수 없다. 

▷컴파일시간에 STL이 작동하기 때문에 보통 헤더파일에만 존재한다.