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이 작동하기 때문에 보통 헤더파일에만 존재한다.