이전에는 노드를 사용하여 연결된 목록을 구현했습니다.표준 라이브러리 목록에 대한 질문
표준 라이브러리 목록의 일부 속성을 살펴보고 iterators와 적절한 멤버 함수가 있습니다.
리스트의 반복자는 무엇입니까? 노드 포인터입니까?
벡터의 경우 기본적으로 요소 유형에 대한 포인터가 있으며 데이터 구조는 해당 유형의 기본 동적 배열을 기반으로 작성됩니다.
목록의 경우 노드 시퀀스, 노드 배열 인 것 같습니다. 그래서 이터레이터는 노드 데이터 타입에 대한 포인터가 아니라 노드 포인터입니까? 벡터 내가이 반복자가 있다면
기본적으로 내가 무엇을 해달라고 부탁하는 것입니다 :
tyepdef T* iterator;
목록에 대한 반복자가 될 것인가를
typedef node* iterator;
곳 노드 뭔가 같은 :
template <class T> struct node {
node() { next = 0; }
node(T i, node* n = 0) : data(i), next(n) {}
node* next;
T data;
}
이 경우 dereferencing과 같은 작업이 오버로드되어야합니다.
1995 년에 오신 것을 환영합니다. 반복자는 노드 포인터로 구현 될 수 있으며 실제로 자주 반복됩니다. 그러나 그것들은 추상적 인 데이터 타입이고 가장 확실한 것은 노드 포인터가 아닙니다. 그렇다면 '++'와 같은 연산자는 작동하지 않습니다. –