반응형
empty () 벡터에 대해 begin () == end ()입니까?
나는 오랫동안 빈에 대한 것으로 가정 한 std::vector
V , V.begin() == V.end()
. 그러나 나는 이것이 항상 사실 이라고 말하는 C ++ 사양에서 아무것도 볼 수 없습니다 . 그것은 반드시 사실입니까, 아니면 대부분의 구현에서 사실입니까?
예, 그것이 empty()
모든 컨테이너 에 대한 표준 요구 사항 입니다.
§ 23.2.1 C ++ 11 표준의 표 96은 다음과 같이 말합니다.
+----------+---------------+----------------------+
|Expression| Return Type | Operational Semantics|
|----------|---------------|----------------------|
|a.empty() |Convertible |a.begin() == a.end() |
| |to bool | |
| | | |
+-------------------------------------------------+
23.2.1 일반 컨테이너 요구 사항 , 특히 표 96 컨테이너 요구 사항 에는
a.empty()
bool
, 운영 의미 체계 로 변환 가능a.begin() == a.end()
그때
6
begin()
은 컨테이너의 첫 번째 요소를 참조하는 반복자를 반환합니다.end()
컨테이너의 마지막 끝 값인 반복자를 반환합니다. 컨테이너가 비어 있으면begin() == end();
(강조 광산)
http://www.cplusplus.com/reference/vector/vector/end/
컨테이너가 비어 있으면 end ()는 begin ()과 동일합니다.
응 그것은 사실이야. 여기에 증거가 있습니다. 그리고 물론 std::distance(a.begin(), a.end()) == 0
빈 벡터의 경우입니다.
참고 URL : https://stackoverflow.com/questions/17796200/is-begin-end-for-any-empty-vector
반응형
'programing tip' 카테고리의 다른 글
중복 된 행의 인덱스 찾기 (0) | 2020.11.18 |
---|---|
CURLOPT_HTTPHEADER로 curl_setopt를 여러 번 호출하여 여러 헤더를 설정할 수 있습니까? (0) | 2020.11.18 |
C #의 식에서 new Object ()와 new Object {}의 차이점은 무엇입니까? (0) | 2020.11.18 |
어떤 WPF 책을 추천 하시겠습니까? (0) | 2020.11.18 |
누군가 ivy.xml 종속성의 conf 속성을 설명 할 수 있습니까? (0) | 2020.11.18 |