C ++에서 벡터를 반복하는 올바른 방법은 무엇입니까?
이 두 코드 조각을 고려하십시오.이 코드는 잘 작동합니다.
for (unsigned i=0; i < polygon.size(); i++) {
sum += polygon[i];
}
그리고 이것:
for (int i=0; i < polygon.size(); i++) {
sum += polygon[i];
}
생성 warning: comparison between signed and unsigned integer expressions
합니다.
나는 C ++의 세계에 새로 unsigned
왔 으므로 변수가 약간 무섭게 보이며 unsigned
올바르게 사용하지 않으면 변수가 위험 할 수 있다는 것을 알고 있습니다. 맞습니까?
.size()
는 unsigned
일명 유형이 아닙니다 unsigned int
. 유형 std::size_t
입니다.
std::size_t
는 _implementation-defined typedef입니다. 표준을 참조하십시오. 현재 구현에서 std::size_t
와 같을 수도 unsigned
있지만 관련이 없습니다. 척하는 것은 이식 불가능한 코드와 정의되지 않은 행동을 초래할 수 있습니다.
std::size_t
실제로입니다. 우리가 6 년 동안이 끔찍한 논평에서 아직 모든 것을 다루었다고 생각하십니까?