내 말은- std::map
의 요소가 키에 따라 정렬되어 있다는 것을 알고 있습니다. 키가 정수라고 가정 해 봅시다. std::map::begin()
를 std::map::end()
사용하여 반복하는 경우 for
표준에 따라 키가있는 요소를 오름차순으로 정렬하여 결과적으로 반복한다는 보장이 있습니까?
예:
std::map<int, int> map_;
map_[1] = 2;
map_[2] = 3;
map_[3] = 4;
for( std::map<int, int>::iterator iter = map_.begin();
iter != map_.end();
++iter )
{
std::cout << iter->second;
}
인쇄가 보장 234
됩니까, 아니면 구현이 정의되어 있습니까?
실생활 이유 : 나는이 std::map
와 int
키. 매우 드문 상황에서 구체적인 int
값 보다 큰 키를 사용하여 모든 요소를 반복하고 싶습니다 . 같은 네, 그것은 소리가 std::vector
더 나은 선택이 될,하지만 내 "매우 드문 경우"를 알 것이다.
편집 : 나는 요소 std::map
가 정렬되어 있음을 알고 있습니다 . 지적 할 필요가 없습니다 (대부분의 답변은 여기에 있음). 나는 심지어 내 질문에 그것을 썼다.
컨테이너를 반복 할 때 반복자와 순서에 대해 묻고있었습니다. @Kerrek SB에게 감사합니다.
map::upper_bound
에서 반복을 시작할 요점을 찾는 데 사용할 수 있습니다 .