사용자 도구
관리
로그인
추적:
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== STL ====== Standard Template Library. 많이 쓰이는 자료구조와 알고리즘을 구현해 놓은 라이브러리. ===== vector ===== 동적 배열. ==== 예 ==== <code cpp> #include <iostream> #include <vector> using namespace std; void main() { int num; int i; printf("배열 크기를 입력하시오 : "); scanf("%d",&num); vector<int> vi(num); for (i=0;i<num;i++) { vi[i]=i*2; } for (i=0;i<num;i++) { printf("vi[%d]=%dn",i,vi[i]); } printf("벡터의 크기는 %d입니다.n",vi.size()); } </code> ===== map ===== ==== 값으로 정렬하기 ==== 일단 map에 있는 값을 vector로 복사한다. <code cpp> std::vector<std::pair<K,V> > vec(map.begin(), map.end()); </code> 다음으로 정렬을 수행한다. 부스트(boost)를 이용할 경우 다음과 같다. <code cpp> std::sort<vec.begin(), vec.end(), boost::bind(&std::pair<K, V>::second, _1) < boost::bind(&std::pair<K, V>::second, 2)); </code> 만약 STL만 이용하겠다면 다음과 같이 먼저 템플릿 스트럭쳐를 정의한다. <code cpp> template<template <typename> class P = std::less > struct compare_pair_second { template<class T1, class T2> bool operator()(const std::pair<T1,T2>&left, const std::pair<T1,T2>&right) { return P<T2>()(left.second, right.second); } }; </code> 다음으로 다음과 같이 실제 정렬을 수행한다. <code cpp> // 오름차순 std::sort(v.begin(), v.end(), compare_pair_second<std::less>()); // 내림차순 std::sort(v.begin(), v.end(), compare_pair_second<std::greater>()); </code> <WRAP important> ''std::less'' 또는 ''std::greater''를 사용하려면 ''#include <functional>'' 를 추가한다. </WRAP> === 참고 === * [[http://stackoverflow.com/questions/279854/how-do-i-sort-a-vector-of-pairs-based-on-the-second-element-of-the-pair|How do I sort a vector of pairs based on the second element of the pair?]] * http://juggernaut.tistory.com/24 ===== std::copy ===== ==== dump ==== <code cpp> #include <iostream> #include <vector> #include <algorithm> using namespace std; template<typename C> void dump(const char *desc, C c) { cout.width(12); cout << left << desc << "==> "; copy(c.begin(),c.end(),ostream_iterator<typename C::value_type>(cout," ")); cout << endl; } void main() { int someNum[] = {1,1,2,3,5,8,13}; vector<int> vi(&someNum[0], &someNum[7]); dump("입력 완료 후",vi); } </code>
문서 도구
문서 보기
이전 판
역링크
PDF로 내보내기
맨 위로
PDF Export
내용으로 건너뛰기
OBG WiKi
사이트 도구
검색
최근 바뀜
미디어 관리자
사이트맵