vector v;
for(int i = 0; i
벡터사이즈가 0일때 반복문 안돌줄 알앗는데 돌길래
뭔가 했더니 v.size() - 1하면 이상한 184319841231891 이런 숫자가 나오네요
int k = v.size()하고 v.size()대신 k 넣으면 안터지고
size()가 리턴하는게 size_type? 이게 unsigned라 그런건가
쓰다보니 unsigned라서 0에서 -1하면 커지는거같기도
혹시 아시는 분 있나요?
vector v;
for(int i = 0; i
벡터사이즈가 0일때 반복문 안돌줄 알앗는데 돌길래
뭔가 했더니 v.size() - 1하면 이상한 184319841231891 이런 숫자가 나오네요
int k = v.size()하고 v.size()대신 k 넣으면 안터지고
size()가 리턴하는게 size_type? 이게 unsigned라 그런건가
쓰다보니 unsigned라서 0에서 -1하면 커지는거같기도
혹시 아시는 분 있나요?
코드 짤려서 정확히 뭘 썼는지는 모르겠지만 .size()의 리턴타입이 unsigned라서 -1하면 오버플로우 일어나는건 맞음
감사합니다. 글 수정을 하는데 코드가 계속 짤리네요 뭐지
ㅇㅇ unsigned임. 나도 예전에 koi문제 풀다가 size-1이 왜 오류뜨나 했더니 벡터사이즈값이 이상하게 돼있더라.
디시 글 짤리는거 부등호 넣으면 그러던디
킹갓 auto써
unsigned라 그런거 맞음 종만북 볼때 그래서 조심하라고 하는거 본적 있음
#define sz(v) ((int)v.size()) 안 쓰는 흑우? - dc App
ㅇㅎ..
참고로 빼기 말고 음수랑 비교할때에도 비슷한일 있음
음수랑 unsifned 비교하면 음수가 항상 큼
난 지금까지 운이 좋았다... 미리 방지 합니다
ㅇㅇ 언사인드라 맞음