vector v의 사이즈가 4이고 k가 10일 때 (v.size() - k > 0) 조건이 계속 참이 나왔다. 왜 그러나 (v.size() - k) 를 콘솔에 찍어보니 쓰레기 값이 나왔다.....
쓰레기 값을 30초 들여다보니 아차 싶더라.
v.size() 는 양수만 취급한다.
size가 음수일리는 없으니 signed 자료형으로 개발했나보다. C만든 사람들 꽤나 직관적이다.
unsigned : 양수만 표현 가능 (0 ~ 2^32-1)
signed : 맨 앞 비트로 양수/음수를 분별한다. (-2^31 ~ 2^31-1)
signed int가 기본형이라 너무 당연하게 v.size()가 음수 표현이 안 될 것이란 생각을 못했다.
바보..........
'TIL' 카테고리의 다른 글
C++ string replace, count (0) | 2023.04.10 |
---|---|
IntelliJ 사용 시 gradle 프로젝트 out, build 폴더 차이 (0) | 2023.04.05 |
221229 오늘의 삽질 (0) | 2022.12.29 |
[C++] 우선순위 큐 오름차순(최소힙) 만들기 (0) | 2022.12.04 |
[C++] string 문자열 split 하는 함수 (0) | 2022.12.02 |