IT-개발(156)
-
STL - algorithm
> STL 알고리즘은 크게 4가지로 분류할 수 있다.• 변경 불가 시퀀스 알고리즘 : find와 for_each 등• 변경 가능 시퀀스 알고리즘 : copy, generate 등• 정렬 관련 알고리즘 : sort와 merge 등이• 범용 수치 알고리즘 : 값을 계산하는 알고리즘으로 accumulate 등이 있다.
2017.01.04 -
STL - Set - sample(2)
set은 이미 있는 key 값을 추가할 수 없다(복수의 key 값을 사용하기 위해서는 multiset을 사용해야 한다). 참고로 특정 위치를 지정하여 추가를 하여도 정렬되어 저장한다. // find로 찾은 Key 변경#include #include #include using namespace std; int main(){set set1;set1.insert( 10 ); set1.insert( 15 );set1.insert( 12 );for( set::iterator IterPos = set1.begin();IterPos != set1.end(); ++IterPos ){cout m_Level = 10;PlayerList.insert( pPlayer1 );Player* pPlayer2 = new..
2017.01.04 -
STL - Set - sample(1)
Set? map과 비슷하지만 다른 점은 map은 key와 값을 한 쌍으로 저장하지만 set은 key만 저장한다. set도map과 같이 key를 중복으로 저장할 수 없다. 만약 key를 중복으로 사용하고 싶다면 multiset을 사용해야 한다. 사용방법은 set과 거의 같다. set은 map과 같이 이진 탐색 트리 자료구조를 사용한다. set은 자료를 저장할 때 내부에서 자동으로 정렬하고, map과 다르게 key만 저장한다. set은 다음과 같은 조건일 때 사용하면 좋다.1 정렬해야 할 때2 key가 있는지 없는지 알아야 할 때3 많은 자료를 저장하고, 검색 속도가 빨라야 set 컨테이너를 쓰려면 먼저 헤더 파일을 포함해야 한다.#include 보통 set을 사용하는 방법은 다음과 같다.set< key 자..
2017.01.04 -
STL - map - sample(2)
#include #include #include using namespace std;struct Item{char Name[32]; // 이름char Kind; // 종류int BuyMoney; // 구입 가격int SkillCd; // 스킬 코드}; int main(){map Items;map::iterator IterPos;typedef pair ItemPair;Item Item1;strncpy( Item1.Name, "긴칼", 32 );Item1.Kind = 1; Item1.BuyMoney = 200; Item1.SkillCd = 0;Item Item2;strncpy( Item2.Name, "성스러운 방패", 32 );..
2017.01.04 -
STL - map - sample(1)
map의 자료구조는 '트리tree'다(정확하게 말하면 트리 자료구조 중의 하나인 '레드-블랙 트리Red-Black tree'이다).정렬이 필요하지 않는 곳에서 map을 사용하는 것은 불필요한 낭비이다. map은 다음 조건일 때 사용하면 좋다.1. 정렬해야 한다.2. 많은 자료를 저장하고, 검색이 빨라야 한다3. 빈번하게 삽입, 삭제하지 않는다. map은 자료를 저장할 때 정렬을 한다고 말했다. 정렬의 대상은 key를 대상으로 하며 오름차순으로 정렬한다. 그래서 내림차순으로 정렬하고 싶거나 key의 자료형이 기본형이 아닌 유저 정의형(class나 struct로 정의한 것)인 경우는 정렬 방법을 제공해야 한다. 위에 생성한 map1은 오름차순으로 정렬하는데 이것을 내림차순으로 정렬하고싶다면 아래와 같이 하면..
2017.01.04 -
STL - hash_map - sample(2)
#include #include using namespace std;using namespace stdext; // 게임 캐릭터struct GameCharacter{GameCharacter() { }GameCharacter( int CharCd, int Level, int Money ){_CharCd = CharCd;_Level = Level;_Money = Money;}int _CharCd; // 캐릭터코드int _Level; // 레벨int _Money; // 돈}; void main(){hash_map Characters;GameCharacter Character1(12, 7, 1000 ); Characters.insert(hash_map::value_type(12, Character1));Game..
2017.01.04