전체보기(303)
-
STL - algorithm - generate
컨테이너의 특정 구간을 특정 값으로 채우고 싶을 때가 있다. 이 값이 동일한 것이라면 컨테이너의 assign() 멤버를 사용하면 되지만 동일한 값이 아니라면 assign()을 사용할 수 없다. 이 때 사용하는 알고리즘이 generate이다. generate 알고리즘에 값을 채울 컨테이너의 시작과 끝, 값을 생성할 함수를 파라미터로 넘긴다 generate 알고리즘의 대상이 되는 컨테이너는 값을 채울 공간이 미리 만들어져 있어야 한다. 즉 generate는 컨테이너에 데이터를 추가하는 것이 아니고 기존의 데이터를 다른 값으로 변경하는 것이다. #include #include #include struct User{int UID;int RaceType;int Sex;int Money;}; struct SetUs..
2017.01.04 -
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