[완료] iterator와 pointer
글쓴이: clauxewitz / 작성시간: 화, 2009/02/10 - 3:25오후
Accelerated C++로 공부하고 있는 초짜입니다.
Chapter 10의 연습문제 2번을 풀고 있는데요.
container안의 값들을 정렬시켜 중간값을 구하는 median 함수를
vector와 array 둘 모두에 적용시킬 수 있게끔 하기 위해
template으로 구현하려고 합니다.
template<class T> T median(T*, T*); vector<int> int_vec; int int_array[]; size_t size = sizeof(int_array) / sizeof(*int_array); cout << median(int_vec.begin(), int_vec.end()) << endl // ERROR << median(int_array, int_array + size) << endl;
median 함수에 pointer 인자를 전달하는 방식을 쓰려는데
array로는 잘 되고 vector에서 컴파일 에러가 나더군요.
begin()과 end()는 모두 iterator를 리턴하고
STL에서 iterator도 pointer로 구현되었다고 들은 바가 있어서
저렇게 해도 되지 않을까 싶었는데 안되네요.
코드에 문제가 있는건지,
아니면 Dev-C++(g++)에서 컴파일해서 그런건지 잘 모르겠어서 질문드립니다.
Forums:
반복자와 포인터는
반복자와 포인터는 다릅니다. 반복자를 포인터처럼 쓸수 있도록 *연산자및 ->연산자가 오버로딩 되어있을 뿐입니다.
그렇군요...
연산자만 오버로딩되어있을 뿐인 건가 보군요. 역시 저에겐 공부가 필요하겠네요~ 감사합니다^^
댓글 달기