정리 사이트...
블로그 메뉴
HOME
TAG
MEDIA LOG
GUEST BOOK
ADMIN
WRITE
글
boost - multi_index (2) - ranked_index 사용관련
프로그래밍/boost
설정
boost 1.59 버전에서 새롭게 추가된 컨데이너...
랭킹 관련한 처리를 할때 이용하기 좋아보인다...
아래는 그냥 샘플 코드...
#include
#include "boost/shared_ptr.hpp" #include "boost/make_shared.hpp" #include "boost/multi_index_container.hpp" #include "boost/multi_index/member.hpp" #include "boost/multi_index/ordered_index.hpp" #include "boost/multi_index/ranked_index.hpp" struct Data { int uid; int value; Data(const int _uid, const int _value) : uid(_uid), value(_value) {} }; typedef boost::shared_ptr
DataPtr; struct Indices : public boost::multi_index::indexed_by < boost::multi_index::ordered_unique
, boost::multi_index::ranked_non_unique
> > { enum Index { IDX_UID, IDX_RANK, }; }; typedef boost::multi_index_container
Container; int main() { Container container; auto& uidContainer = container.get
(); auto& rankContainer = container.get
(); container.insert(boost::make_shared
(1, 100)); container.insert(boost::make_shared
(2, 200)); container.insert(boost::make_shared
(3, 300)); container.insert(boost::make_shared
(4, 200)); container.insert(boost::make_shared
(5, 500)); ////////////////////////////////////////////////////////////////////////// printf("=== 전체 랭킹\n"); for (auto it = rankContainer.begin(); it != rankContainer.end(); ++it) { printf("[rank:%d] uid:%d value:%d\n", static_cast
(rankContainer.rank(it)), (*it)->uid, (*it)->value); } printf("\n"); ////////////////////////////////////////////////////////////////////////// auto find_if = uidContainer.find(3); if (find_if == uidContainer.end()) return 0; auto find_user_rank = container.project
(find_if); if (find_user_rank == rankContainer.end()) return 0; printf("=== uid : 3번의 랭킹 정보 \n"); printf("[rank:%d] uid:%d value:%d\n", static_cast
(rankContainer.rank(find_user_rank)), (*find_user_rank)->uid, (*find_user_rank)->value); printf("\n"); return 0; }
공유하기
게시글 관리
정리 사이트...
저작자표시
비영리
by
널부러
2016. 4. 19. 13:06
사이드 메뉴
기억해야할껏 정리하는 곳...
CATEGORY
분류 전체보기
(60)
프로그래밍
(47)
Network
(0)
Asio
(1)
boost
(10)
nodejs
(4)
MySQL
(2)
개발툴 관련
(9)
기타
(21)
OS
(12)
윈도우
(1)
리눅스
(11)
NAS
(1)
TAG
breakpad
UDP
handlebars tip
kdevelop
IOCP
node.js
리눅스
boost
RECENT POSTS
RECENT COMMENT
RECENT TRACKBACK
ARCHIVE
NOTICE
MY LINK
CALENDAR
이전 달의 달력을 보여줍니다.
2024.12
다음 달의 달력을 보여줍니다.
포스팅달력
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
COUNTER
TOTAL
TODAY
티스토리툴바
RECENT COMMENT