[C++] size_t

csm2652·2022년 4월 7일
0
std::string::size_type stringSize = greeting.size();

위 코드를 보면 stringSize 라는 변수를 std::string 클래스가 제공하는
size_type 으로 정의한다.
위의 size_typestring 이 담을 수 있는 최대 문자 개수를 저장할 수 있는 타입이다.

참고로,

size_type은 allocator< T >의 size_type과 같다. 또, size_type은 cstddef에 선언된 size_t와 동일한 타입이다. size_t는 sizeof 연산자의 리턴 타입이며, unsigned int이고, 기계에 의존적인 값이다

왜 INT를 안쓰고...?

  • int 형을 사용하지 않고 string 클래스가 제공하는 size_type 을 사용하는 것일까?

그것은 String이 (string 형의 객체인) greeting 의 문자 개수가 얼마나 커지든 간에 상관없이
그 값을 저장할 수 있도록 하기 위한것이다.

stringSize 의 값은 greeting 의 길이에 좌우되는데
만일 greeting 이 사용자에게서 문자열을 입력받는다면,
특정 사용자가 int 형으로 표현 가능한 길이 보다 더욱 긴 문자열을
greeting 의 입력으로 주었을때
int 형으로 정의한 stringSize 는 그 길이를 감당할 수 없게 된다.

이처럼 라이브러리가 특정 목적에 부합되도록
미리 정의한 타입을 사용하는 것이 좋은 습관이라고 accelerated c++ 에서는 말하고 있다.

출처:https://zbaekhk.blogspot.com/2011/06/stdstringsizetype.html [백흠경]

profile
언제나 감사하며 살자!

0개의 댓글