나는 STL을 배우고 있으며 reverse_iterator
은 나 혼란 스럽다. 그것은 기본 생성자가 있지만 그것을 사용하는 방법을 이해하지 않습니다. 시도 :reverse_iterator에 기본 생성자가있는 이유는 무엇입니까?
reverse_iterator<int*> r{};
r --;
및 프로그램이 충돌했습니다. 나는이 사용법에 아무런 요점도 없으며 쉽게 충돌을 일으킬 수 있다고 생각합니다. 그래서 왜 기본 생성자가 사용되도록 허용 되었습니까?
아마도 "초기화되지 않은"반복기를 나중에 특정 값으로 지정하도록 지원하는 것일 것입니다. 기본 생성 반복자를 초기화되지 않은 변수로 취급하십시오. 즉, 의미있는 값을 지정할 때까지는 아무 것도하지 마십시오. – AnT
왜'nullptr'을 가리키는 포인터를 정의하고 역 참조 할 수 있습니까? 허용되지 않는 것은 매우 안전하지 않고 정의되지 않은 많은 것들이 있습니다. 그것은 C++에게 속도를 제공하는 것이며, 발자국을 발휘합니다. –
@RickAstley 나는 C++ 표준 라이브러리가 "발을 들여 놓을"사고 방식에서 "비용이 들지 않으면 발을 쏘지 않을 것"이라고 생각합니다. 안전하지 않은 것이 허용되면 더 많은 이유가 있어야합니다. –