목록Develop/C++ (80)
오븐 노트
#include using namespace std; #include #include #include // vector : 동적 배열 // [ ] // list : 이중 연결 리스트 // [ ] [ ] [ ] [ ] // deque : double-ended queue 데크 // [ ] int main() { // 시퀀스 컨테이너 (Sequence Container) // 데이터가 삽입 순서대로 나열되는 형태 // vector list deque //deque dq; //dq.push_back(1); //dq.push_front(2); //cout 데이터 칸 자체를 새로 추가하는 개념이기에 동작이 빠르다 // - 임의 접근 -> 임의 접근 지원 dq[3] = 0; cout
#include using namespace std; #include #include template class Node { public: Node() : _next(nullptr), _prev(nullptr), _data(T()) { } Node(const T& value) : _next(nullptr), _prev(nullptr), _data(value) { } public: Node* _next; Node* _prev; T _data; }; template class Iterator // Node pointer를 내부적으로 들고있는 역할 { public: Iterator() : _node(nullptr) { } Iterator(Node* node) : _node(node) { } // 자기 자신의 ..
#include using namespace std; #include #include class Node // 이중 연결 리스트 { public: Node* _next; Node* _prev; int _data; }; // 단일 / 이중 / 원형 // list : 연결 리스트 // [] 한칸이 노드의 개념 // [1] -> [2] -> [3] -> [4] -> [5] // [1] [2] [3] [4] [5] // [1] [2] [3] [4] [5] [1] int main() { // list (연결 리스트) // - list의 동작 원리 // - 중간 삽입/삭제 // - 처음/끝 삽입/삭제 // - 임의 접근 list li; list::iterator itRemember; for (int i = 0; i..
#include using namespace std; #include #include class Node // 단일 연결 리스트 { public: Node* _next; int _data; }; // 단일 / 이중 / 원형 // list : 연결 리스트 // [] 한칸이 노드의 개념 // [1] -> [2] -> [3] -> [4] -> [5] // [1] [2] [3] [4] [5] // [1] [2] [3] [4] [5] [1] int main() { // list (연결 리스트) // - list의 동작 원리 // - 중간 삽입/삭제 // - 처음/끝 삽입/삭제 // - 임의 접근 list li; for (int i = 0; i < 100; i++) li.push_back(i); //li.push_..
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; #include int main() { // 컨테이너(Container): 데이터를 저장하는 객체 // vector (동적 배열) // - vector의 동작 원리 (size/capacity) // - 중간 삽입/삭제 // - 처음/끝 삽입/삭제 // - 임의 접근 // 반복자(Iterator) : 포인터와 유사한 개념. 컨테이너의 원소(데이터)를 가리키고, 다음/이전 원소로 이동 가능 vector v(10); for (vector::size_type i = 0; i < v.size(); i++) // 벡터 한정으로는 iterator 포문과 큰 차이 없음 v[i] = i; //vector::iterator it; //int* ptr; //it = v...
#include using namespace std; #include int main() { // STL (Standard Template Library) // 프로그래밍 할 때 필요한 자료구조 / 알고리즘들을 템플릿으로 제공하는 라이브러리 // 컨테이너(Container) : 데이터를 저장하는 객체 (자료구조 Data Structure) // vector (동적 배열) // - vector의 동작 원리 (size/capacity) // - 중간 삽입/삭제 // - 처음/끝 삽입/삭제 // - 임의 접근 // 동적 배열 /*int arr[100]; // 대충 예를 들어 이런 느낌 int* arr2 = new int[100]; delete arr2; arr2 = new int[1000];*/ // 1) (..