우리가 구현한 것은 지금struct LinkedListNode의 멤버 변수로LinkedListNode< T > m_prevNodeAddr;LinkedListNode< T > m_nextNodeAddr;T 이렇게 가지고 있고class LinkedList의
erase함수가 인자로 받아온 iterator가 가르키는 부분(데이터를)을 삭제를 하겠다라는 말이다.\-1이라면 end iterator라고 보기로 했었다.지금 m_dataCout <= iter.m_i_indexNumber인데데이터가 10개 기준일 때 m_dataC
오늘 할 것은 erase선언부는 이렇게된다인자 생각하면 원본을 수정하지 않겠다라는 것임.반환타입이 iterotor이고(그러면 일단 원본을 수정하지 않고 뭘 하겠다는 거네?)표준 라이브러리에서 제공하는 vector로 일단 본다.push_back 4번 호출하고 iterat
이부분인데호출 시점은 동일하다고 저번시간 까지 했었다.이부분은 참조가 아니라서 복사본을 return 하기때문에반환하는 것은 또다른 복사본이라 사라짐.그래서 this로 복사본을 만들고\++후위를 호출한 객체를 ++ 연산자 써주어서 호출하고return 으로는 복사본을 반환
전위연산자의 경우 반환타입이 iterator& (iterator를 참조하는것을 반환)하는 이유가 뭐때문이냐? => ++(++k) 하는 경우를 대비하기 위하여.이런경우 발생할 수 있기 때문에.우리는 iterator& 자체를 반환하면되는데operator++ 를 오버로딩 한
iterator는 어떤 객체의 첫번째 주소를 알고있는 것이다.(데이터 변수의 이름이 첫번째 주소이다.)우리가 구현한 것은 문제점이 하나있는데가변배열이라 데이터를 계속 넣다보면 Resize를 해서 새로운 2배 크기의 메모리를 할당한다.그러면 iterator는 2배로 커진
가변배열에서의 iteratorprivate의T\* == 8바이트, int 두개 8바이트long long == 8바이트그러면 가변배열 CArr객체를 하나 만들면 몇 byte노?=> 24바이트하면 바보병신임.iterator 클래스가 안에 선언되어있네?CArr(가변배열) 객
는vector, list와 같은 자료구조 내에서데이터를 넣었을 때iterator를 통해 내부에 데이터를 접근 하기도 하고,순회 할 수도 있게 만들어주는 "반복자"이다.이런식으로 operator나 멤버함수로 순회 씹가능 하지만,vector도 iterator가 내부에 구현
표준 라이브러리에서 제공해주는 가변배열표준 라이브러리에서 제공해주는 연결형 리스트이거 두개 다 당연히 "템플릿"이다.vector에는 당연히 push_front없는데배열에서 앞에다 넣는다?? => ㅈㄴ 비효율적앞에다가 데이터를 넣을 것이였으면당연히 리스트가 효율적이다.이