본문 바로가기

C,C++30

[C++] STL : Standard Template Library 3 - 연결 리스트 이번 회부터는 본격적으로 STL에 대해서 이야기합니다. STL은 C++ 템플릿을 사용해 만든 표준 라이브러리입니다. 그러니 템플릿에 대해서 아직 잘 모르시는 분들은 앞에 연재한 템플릿에 대한 글을 읽어보시기를 권합니다. 일반적으로 STL 중에서 가장 많이 사용하는 라이브러리는 컨테이너 라이브러리입니다. 컨테이너는 말 그대로 무엇인가를 담는 것입니다. 컨테이너는 int나 float 등의 기본 자료 형이나 구조체, 클래스같은 유저 정의 자료 형을 담습니다. STL의 컨테이너는 list, vector, deque, map, set이 있습니다. 이번 회는 list에 대해서 이야기합니다. list의 자료구조 list는 자료구조 중 "연결 리스트"를 템플릿으로 구현한 것입니다. 그래서 list를 알려면 "연결 리스.. 2018. 7. 6.
[C++] STL : Standard Template Library 2.2 -클래스 템플릿 이전 기사에서는 함수 템플릿에 대해 설명을 했으니 이번에는 클래스 템플릿에 대해서 설명하려고 합니다. 클래스 템플릿을 아주 간단하게 말하면 함수 템플릿이 함수에 템플릿을 사용한 것처럼 클래스 템플릿은 클래스에 템플릿을 사용한 것입니다. 그러니 함수 템플릿에 대해서 잘 모르시는 분은 꼭 함수 템플릿에 대한 글을 먼저 보고 이 글을 보는 것이 이해하기에 좋습니다.경험치 변경 이력 저장기획팀에서 유저들이 게임에 접속하여 다른 유저들과 100번의 게임을 했을 때 유저들의 경험치가 변경 되는 이력을 볼 수 있기를 요청 하였습니다. 기획팀의 요구를 들어주기 위해서 저는 게임이 끝날 때마다 경험치를 저장합니다. 또 경험치 이력 내역을 출력할 때 가장 최신에서 가장 오랜 된 것을 보여줘야 되기 때문에 스택(stack).. 2018. 7. 6.
[C++] STL : Standard Template Library 2.1 -함수 템플릿 함수 템플릿두 값을 비교하는 함수를 만들어야 됩니다.앞서 제가 하는 일을 이야기했습니다. 네, 온라인 게임을 만들고 있습니다. 게임에서 구현해야 되는 것에는 캐릭터 간에 HP를 비교하는 것이 필요합니다. 그래서 두 개의 int 타입을 비교하는 Max라는 이름의 함수를 하나 만들었습니다.1int Max( int a, int b ); 일을 다 끝낸 후 다음 기획서를 보니 캐릭터와 NPC가 전투를 하는 것을 구현해야 되는데 여기에는 경험치를 비교하는 기능이 필요합니다. 구현해야 되는 것은 위에서 만든 Max 함수와 같습니다. 그래서 그것을 사용하였습니다. 1234567891011121314151617181920#include using namespace std; int Max( int a,.. 2018. 7. 6.
[C++] STL : Standard Template Library 1 -표준 템플릿 라이브러리란? STL이 무엇인지 알고 계십니까?C++를 주 프로그래밍 언어로 사용하고 계신 분들은 알고 있으리라 생각합니다. STL은 C++ 언어의 '표준 템플릿 라이브러리 (Standard Template Library) '의 약자입니다. STL을 간단하게 말하자면 일반적으로 많이 사용될 수 있는 자료구조와 알고리즘 모음 라이브러리가 말할 수 있습니다. STL은 C++ 언어가 처음 만들어질 때부터 있었던 것이 아니고 1998년에 C++ 표준이 정해지기 전인 1993년 말 무렵에 Alex Stepanov가 C++ 언어의 창시자인 Bjarne Stroustrup에게 보여준 후 준비 기간을 걸쳐서 1994년에 표준 위원회에 초안이 통과됩니다. 참고로 C++ 표준은 1989년에 시작되어 1998년 9월에 마무리되었습니다. .. 2018. 7. 6.
[C++] 2차원 배열 동적할당 2차원 배열을 동적할당은 바로 못한다고 한다 그래서 2차원 배열 동적 할장 방법에 대해 찾아보았다. 안녕하세요. C++ 에서 2차원 배열을 동적으로 할당하고, 해제하는 방법입니다. 아래 코드에서는 string.h 를 inclue 하는데요, 메모리 관련 함수이면서 string.h 에 포함된 점이 특이합니다. memory.h 를 사용해도 된다지만 string.h 가 표준이라고 합니다. StakOverflow : How do I declare a 2d array in C++ using new? 링크의 답변 중에는 2차원 배열을 하나의 memory block 에 할당하는 방법(포인터들의 크기만큼 메모리 절약)에 대한 답변과, new - delete 보다는 std::vector 를 사용하라는 답변도 있습니다. #.. 2018. 7. 4.
C, C++ 입출력 공백나올때 까지 입력받는 함수를 찾고 있는데 안나온다. 아 책을 찾아 봐야하나.. 그러던 와중!!! strtok를 찾았다!!! ㅎㅎㅎㅎㅎ 는 어렵워서 다시.. 와중 한 블로그에서 실마리를 찾았다. http://jaimemin.tistory.com/114?category=958630 c++ class부터 다시 연습해야겟따.. 하나도 모르겟다 포인터 class 다 다시.. 지금부터라도 하자 현준아ㅜㅜ 할 수 있따!! 무튼 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 int fileprint() { ifstream in("input1.txt"); string s; char ch; if(!in){ cout 2018. 5. 14.