목록length() 에러 (1)
DuckingRacoon
[C++] size_t는 unsigned 타입이다.
서론: 문제 발견 상황알고리즘 문제를 풀다가 다음과 같은 문제가 생겼다.string sNum = to_string(Num);for (int j = 0; j 위의 코드의 로직대로라면Num이 한 자리수, 두 자리수 숫자일 때에는 루프에 진입하면 안된다. 하지만 루프에 진입한다! 반대로 위의 코드와 로직적으로 동일한 밑의 코드는 제대로 동작한다.string sNum = to_string(Num);int length = sNum.length();for (int j = 0; j 왜일까?Underflow 발생: size_t는 unsigned 타입이다.그 이유는 sNum.length() - 2에서 underflow가 발생하기 때문이다. string의 길이를 구하는 함수 length()는 size_t 타입 값을 반..
C++
2024. 5. 16. 09:40