set


set_union (합집합)


set_intersection (교집합)


multiset - 중복 객체들을 허용한다는 점 외에는 set과 동일



map

첫번째 값 = 키 ,  두번째 값 = value (값)  키값에 붙어있는 값 


String

string 조작

 - string 붙이기

    '+', '+=' 등의 연산자를 사용

string my_string1 = "a string";

string my_string2 = " is this";

string my_string3 = my_string1 + my_string2;   // 가능허다   a string is this


 - string 비교하기

string passwd;

getline(cin,passwd, '\n');

 passwd == "abcde"  // 가능행



반복자

for(iter = v1.begin())


하읽 






























map<const char*, int> m1;   

m1["january"] = 31;  ------------  january = 키  , 31 = value


Iterater q = m1.fine("january")하면    q.first = junary가   q.second하면 31이 출력


multimap - 일대다 대응관계 , 특정키에 여러가지 value값이 올수있음.



'게임프로그래밍(c++)' 카테고리의 다른 글

3.템플릿과 STL  (0) 2017.03.22
1. c언어 개요  (0) 2017.03.08

이름공간 (name space)  


왜생겼을까? 함수나 심볼들이 있는 공간을 명확하게 하자 ..  필수는 X


namespace first

{

int x = 5;        // 정수형 x 는 그룹 first의 멤버

}


std::cout << "x=" << first::x << std::endl;            // first그룹에 있는 x를 쓰겠다!


일일이 하는게 귀찮다면


using first::x 를해주면


cout<< "x=" << x << endl;    // first 의 x를 찾음


using namespace first를 하면 일단 first 그룹에서 찾고 없다면 순서대로 찾아서 나온걸씀.


cout<< "x=" << x << endl;    // first 의 x를 찾음, 없다면 순서대로 찾아서 나온걸씀


그룹이 없는 전역공간은 


ex) ::i  


first그룹의 i는


ex) first::i


first그룹 안의 second그룹의 i는


ex) first::second::i


------------------------------------------------------------------------------------------------------------------------------------------------------------------------


템플릿 


코드의 재사용성을 위해

각 함수들의 구성은 완전 똑같지만 타입,인자가 다를때 코드의 재사용성을 위해 하나로 합침.


int max(int a,int b)

{

return a > b ? a : b;

}

char max(char a,char b)

{

return a > b ? a : b;

}

double max(double a,double b)

{

return a > b ? a : b

}


이 세가지를 함수 템플릿을 이용하여 하나로 합침!

template <class T>

T max(T a,T b)

{

return a > b ? a : b;

}


원래 함수만들때 선언은 헤더(.h)파일에 정의는 (.cpp) 파일에 작성했는데

템플릿을 사용할경우엔 헤더(.h)파일에 다 작성해야함.

왜냐하면, 아직 타입이 정해지지않았기 때문에 실행시 exe파일에 오브젝트로 만들어 질수 없기 때문이다.



STL 과 템플릿은 나중에 필수 ! 잇힝


typedef 을 활용하즈아!


#include "stack.h"

ex) typedef Stack<double> StackDouble        // 이제 StackDouble 이라는 실수형스택 타입을 하나 만든것이여

    StackDouble a;       // a는 실수형 스택



------------------------------------------------------------------------------------------------------------------------------------------------------------------------


표준 템플릿 라이브러리 (STL) - 오늘 제일 중요한 것!


어음청 ! 좋은것


1. 컨테이너 : 데이터(객체)를 담는 바구니(객체) , 가장 중요한 것. 바구니에 데이터를 담고 빼고 ~


2. 반복자 : 포인터를 일반화한 것


3. 함수객체 


4. 어댑터 : 기존이 객체를 사용자가 변겨에서 새로운 객체를 만드는것.


5. 알고리즘 




1 컨테이너


순차적 vs 연관적 컨테이너


순차적 : vector, list, deque  


연관적 : map , multimap, set, multiset





------------------------------------------------------------------------------------------------------------------------------------------------------------------------


vector


정적 배열 과 동적 배열의 장점을 모은것이 vector


#include<vector>    //여기서 .h가 붙는 헤더들은 c언어의 라이브러리임.


vector <int> v0; // default 생성  크기 = 0

vector <int> v1(3); // 크기는 3 각각의 값은 0으로 채워짐

vector <int> v2(5,2);  // 크기는 5 각 값은 2로 채워짐

vector <int> v4(v2); // v2의 복제본을 생성

vector <int> v(v4.begin()+1, v4.begin()+3);  //  v4의 부분 복제본 벡터를 생성


v.begin() 벡터의 첫 번째 위치

v.end() 벡터의 마지막 위치의 다음 위치



------------------------------------------------------------------------------------------------------------------------------------------------------------------------


deque , list

deque = vector에 맨처음 위치의 추가 삭제 고려

list = deque에 중간 위치의 추가나 삭제 고려












'게임프로그래밍(c++)' 카테고리의 다른 글

4. 연관 컨테이너들 , set ~  (0) 2017.03.29
1. c언어 개요  (0) 2017.03.08

1. c언어 개요.pptx

------------------------------------------------------------------------------------------------------------------------------------------------------------------------


// hello.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.

//


#include "stdafx.h"

#include<windows.h>

#include<math.h>

#include<time.h>

#include<stdlib.h>

#include<algorithm>

#define PI 3.14

using namespace std;

#pragma warning (disable : 4996)

bool compare(int a, int b) // 내림차순 전용 

{

return a > b;

}


bool compare2(const abc &one, const abc &two)   //  오름차순 구조체 전용

{

return one.a < two.a;

}

struct abc {

int a;

char b;

};

abc A[12];

int main()

{

// printf("hello eunchan!\n");


//printf("sin 45도 = %f",sin(45 * PI/ 180));


//srand((int)time(NULL));

//for(int i=1;i<=10;i++)

// printf("%d\n",rand() % 10000+1); // 10000이하의 수 랜덤출력

//


//int A[10] = { 5,3,8,2,6,50,7,15,178,385 };

//sort(A,A+10,compare);   // 내림차순

//for (int i = 0; i <= 9; i++)

// printf("%d\n",A[i]);


//sort(A, A + 10);   // default는 오름차순

//for (int i = 0; i <= 9; i++)

// printf("%d\n", A[i]);


/*for (int i = 1; i <= 10; i++) // 구조체 입력하고  오름차순으로 정렬

{

scanf("%d",&A[i].a);

}

printf("\n");

qsort(A+1,10,sizeof(A),compare2);

for (int i =1; i <= 10; i++)

printf("%d\n",A[i].a);*/


system("pause");

return 0;

}


------------------------------------------------------------------------------------------------------------------------------------------------------------------------


수업내용 

visual studio는 엄청나게 강력크한 IDE ㅋ

우습게 보면안되는 Visual studio .. 중요하게 생각해야함

Visual studio 2015년형으로 게임 개발할거임

그래픽 라이브러리? 그거씀  게임하때 그래픽 라이브러리 (그래픽 SDK) 안쓸수가없당.  

오픈GL ? Direct X ? 둘중에 하나골라야하는데 우리 다이렉트씀

다이렉트 x가 메이저임   근데 오픈GL도 가라앉다가 다시 떠오륵있음. 오오

우리는 2D 그래픽만씀  Direct 2D 오오  이번에 새로나온거임 ㅋ 따근따근 딸근두근세근
함수도 별로없음 버전이 v1.0 이랭 ㅋ

Win32 가장 기본적인 sdk이다.
windows에서 어플리케이션을만들려면 윈32 or mfc  둘중에 하나써야함.

하나의 솔루션엔 하나의 프로젝트를 만듦

ppt대로 프로젝트를 만들경우

#include "stdafx.h"  <--- 미리 컴파일된 헤더 (처음빌드할때만 include 하고 두번째부턴 생략)

int main()
{
return 0;
}

미리 컴파일된 헤더 를 쓰는데 한가지 조건이있다.  모든 .cpp 파일에의 최상단에는 
#include "stdafx.h" 를 써야 한다.

targetver.h 는 윈도우 7,8,10의 모든 dll파일은 다르기 때문에 코드도 조금씩 다르다

그걸 여기다 다 정리해서 신경쓸필요없게 만듬 ㅋ


deg 개발자용  realse 배포용 


개발자들은 only  deg만 씀


한글, 중국어처럼 한글자당 2바이트를 와일드 캐릭터라함 아주 야생적임

그래서 따로 처리해야함 wprintf  w붙은거나 _t 같은 게 와일드 버전임


근데 2015년형은 신경안써도됨 . 강력해져서 ㅎㅎ 다지원해줌

f1 을 이용하여 헤더파일 찾는데 도움을 받자 !! (마이크로소프트 검색 사이트로 넘어가짐) 오 굳굳 함수찾을 때 좋은거 같다.

ex ) https://msdn.microsoft.com/ko-kr/library/4hwaceh6.aspx










'게임프로그래밍(c++)' 카테고리의 다른 글

4. 연관 컨테이너들 , set ~  (0) 2017.03.29
3.템플릿과 STL  (0) 2017.03.22

+ Recent posts