목록면접 (12)
오븐 노트
vector와 iterator의 일부 기능 구현 #include using namespace std; #include template class Iterator { public: Iterator() : _ptr(nullptr) { } Iterator(T* ptr) : _ptr(ptr) { } Iterator& operator++() // 자기 자신의 참조를 뱉어주는 전위형 { _ptr++; return *this; //int a = 1; //int b = ++(++a); // 자기 자신의 참조를 뱉어주는 형태 } Iterator operator++(int) // 복사된 값을 뱉어주는 후위형 { Iterator temp = *this; _ptr++; return temp; //int a = 1; //int..
#include using namespace std; #include // 매우 중요!!!!!!! int main() { // 컨테이너(Container): 데이터를 저장하는 객체 // vector (동적 배열) // - vector의 동작 원리 (size/capacity) // - 중간 삽입/삭제 // - 처음/끝 삽입/삭제 // - 임의 접근 // 반복자(Iterator) : 포인터와 유사한 개념. 컨테이너의 원소(데이터)를 가리키고, 다음/이전 원소로 이동 가능 vector v(10); v.reserve(1000); // 공간 확보 for (vector::size_type i = 0; i < v.size(); i++) // 벡터 한정으로는 iterator 포문과 큰 차이 없음 v[i] = i; //..
#include using namespace std; // 캐스팅 (타입 변환) // 면접 단골 질문 // 구시대적 C 스타일의 캐스팅은 버려야함 // ex) (int) x / static_cast o class Player { public: virtual ~Player() { } }; class Knight : public Player { public: }; class Archer : public Player { public: }; class Dog { }; // 1) static_cast -> 사용 빈도 제일 높음 // 2) dtnamic_cast -> 두번째로 빈도 높음 // 3) const_cast -> 거의 사용하지 않지만 면접용으로라도 알아두기 // 4) reinterpret_cast -> 사..