C++ 136

뇌를 자극하는 C++ STL 이것만은 알고 갑시다 5장

1.1 STL 구성 요소에서 객체들을 저장하는 객체를 컨테이너라 합니다.1.2 컨테이너의 원소를 순회하고 참조하는 객체를 반복자라 합니다.1.3 여러 가지 문제 해결을 위한 반복자와 동작하는 함수 템플릿을 알고리즘이라 합니다. 2.1 컨테이너 원소가 자신만의 삽입 위치를 갖는 것을 표준 시퀀스 컨테이너(standard sequence container)라 합니다.2.2 컨테이너 원소가 특정 정렬 기준에 의해 자동 정렬된 것을 표준 연관 컨테이너(standard associative container)라 합니다. 3.1 배열 기반 컨테이너인 vector와 deque는 임의 접근 반복자를 제공하며, 그 외 모든 STL 컨테이너는 양방향 반복자를 제공합니다.3.2 순차열은 원소의 순서 있는 집합을 의미하며, ..

C++로 쉽게 풀어쓴 자료구조 프로그래밍 프로젝트 14 3번 문제

mapRecord.h/*간단한 재고 관리 프로그램을 STL의 맵 클래스를 이용하여 만들어보자.다음과 같은 필드가 레코드 안에 존재하여야 한다.5자리의 부품 번호(키필드), 10자 이내의 부품 설명, 재주문 여부(yes or no), 현재 재고량이 재고 관리 프로그램을 사용하는 사용자는 다음과 같은 연산들을 수행할 수 있어야한다.재고 목록에 새로운 부품을 추가, 재고 목록에서 부품 검색, 키 필드를 제외한 부품의 임의의 필드 변경*/#include #include #include using namespace std; class Record{private: string instruction; string reorder; int stock;public: Record(string i="", string r=""..

C++로 쉽게 풀어쓴 자료구조 프로그래밍 프로젝트 13

/*1)0에서 n 사이의 난수를 발생하여 배열에 저장하는 다음 함수를 구현하라2)다양한 n 값에 대해 1번의 함수를 이용해 난수를 발생시키고 각 알고리즘으로 정렬하라. 이 때 각 알고리즘의 실행시간을 측정하라.*/#include #include "MinHeap.h"#include "CircularQueue.h"#include #include #include #include //시간 재기 위해using namespace std; #define MAX_SIZE 1024 static void PrintArray(int arr[], int n, char *str = "Array"); inline void swap(int &x, int &y){ int temp = x; x = y; y = temp;} //선택정렬..

C++로 쉽게 풀어쓴 자료구조 프로그래밍 프로젝트 12

[1번 문제] [WGraph.h] /*인접 행렬로 구현된 가중치 그래프 클래스*/#include "AdjMatGraph.h"#define INF 9999 //값이 INF 이상이면 간선이 없음 class WGraph :public AdjMatGraph //AdjMatGraph 상속{public: void insertEdge(int u, int v, int weight) { if (weight > INF) weight = INF; setEdge(u, v, weight); } void insertBothEdge(int u, int v, int weight) { if (weight > INF) weight = INF; setEdge(u, v, weight); setEdge(v, u, weight); } bool..

C++로 쉽게 풀어쓴 자료구조 프로그래밍 12장 Dijkstra & Floyd 알고리즘 예제

AdtMatGraph.h와 WGraph.h는 http://jaimemin.tistory.com/252?category=970810 참고하시기 바랍니다. [WGraphDijkstra.h]#include "WGraph.h" class WGraphDijkstra :public WGraph{private: int dist[MAX_VTXS]; //시작노드로부터의 최단경로 거리 bool found[MAX_VTXS]; //방문한 정점 표시public: //방문하지 않은 정점들 중에서 최단 경로 거리가 가장 작은 정점을 찾아 반환 int chooseVertex() { int min = INF; int minpos = -1; for (int i = 0; i < size; i++) { if (dist[i] < min &&..

C++로 쉽게 풀어쓴 자료구조 프로그래밍 12장 Kruskal & Prim 알고리즘 예제

생각보다 오류가 많은데 정오표에도 기제되어있지 않아 직접 포스팅합니다. [AdjMatGraph.h]/*인접 행렬을 이용한 그래프 클래스 프로그램*/#include #include #include using namespace std; #define MAX_VTXS 256 //표현 가능한 최대 정점의 개수 class AdjMatGraph{protected: int size; //정점의 개수 char vertices[MAX_VTXS]; //정점의 이름 int adj[MAX_VTXS][MAX_VTXS]; //인접 행렬public: AdjMatGraph() { reset(); } char getVertex(int i) { return vertices[i]; } int getEdge(int i, int j) { r..