전체보기(302)
-
STL - algorithm - for_each
for_each는 순차적으로 컨테이너들에 담긴 데이터를 함수의 파라미터로 넘겨서 함수를 실행시키는 알고리즘이다 #include #include #include using namespace std; struct User{int UID;int PlayTime;}; struct UpdatePlayTime{void operator() ( User& user ){user.PlayTime += PlayTime;}int PlayTime;}; int main(){vector Users;User user1; user1.UID = 1; user1.PlayTime = 40000;User user2; user2.UID = 2; user2.PlayTime = 0;User user3; user3.UID = 3; u..
2017.01.04 -
STL - algorithm - find
// ItemCodes 컨테이너의 시작과 끝 사이에서 15를 찾는다.find( ItemCodes.begin(), ItemCodes.end(), 15 ); #include #include #include using namespace std;int main(){vector CharItems;CharItems.push_back( 12 );CharItems.push_back( 100 );CharItems.push_back( 77 );vector::iterator FindIter; // CharItems의 처음과 끝에서 12를 찾는다.FindIter = find( CharItems.begin(), CharItems.end(), 12 );if( FindIter != CharItems.end..
2017.01.04 -
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