반복자를 함수로 전달할 때 벡터로 작업하기가 더 쉽다고 생각하기 때문에 생성자로 변환하지만 새 벡터가 만들어진 것처럼 보입니다. 따라서 함수에서 변경된 사항은 없습니다. 하지만 나는 변화가 필요하고 새로운 기억을 가지지 않아야합니다.템플릿 함수에 벡터 반복자 전달하기
template <class Element>
void HeapSort::MaxHeapify(typename vector<Element>::iterator first, typename vector<Element>::iterator last, ...)
{
vector<Element> array(first, last);
...
}
또한 이러한 함수를 호출 할 때 요소의 유형을 명시 적으로 지정해야합니다. 왜?
MaxHeapify<Element>(array.begin(), array.end(), i);
편집 : 내가 *(first + i) = 5
쓰기 너무 쉽게하고 array[i] = 5
로 읽을 것을 의미 쉽게와.
편집 2 : first[i] = 5
으로 표시 될 수있는 것으로 보입니다. 누군가 내게 질문의 두 번째 부분을 도울 수 있습니까?