제7 7 장 용기 와 데이터 구조

3991 단어 boost
< boost / array. hpp >: 포장 에 배열 을 만들어 서 표준 STL 인 터 페 이 스 를 제공 합 니 다. 예 를 들 어 begin (), front () 등 속도 성능 은 원본 배열 과 차이 가 많 지 않 습 니 다.
#include <iostream>

#include <boost/array.hpp>

#include <boost/typeof/typeof.hpp>



int main()

{

    boost::array<int,10> arr;   //     10 int  ,  boost::array<int,3> arr = {1,2,3}

    arr[0] = 1;

    arr.back() = 2; //          2

    arr.assign(100); //          100

    for(BOOST_AUTO(pos,arr.begin()); pos != arr.end(); ++pos)

    {

        std::cout<<*pos<<",";

    }

    int *p = arr.c_array(); //        

    *(p+5) = 5;

    std::cout<<"
"<<arr[5]<<std::endl; int *p_onlyread = arr.data(); // *(p_onlyread+5) = 3; std::sort(arr.begin(),arr.end()); for(BOOST_AUTO(pos,arr.begin()); pos != arr.end(); ++pos) { std::cout<<*pos<<","; } std::cout<<"
array's size:
"<<arr.size()<<std::endl; }

 
C + + 98 표준 은 바 이 너 리 수 치 를 처리 하 는 데 두 가지 도 구 를 제공 합 니 다: vector < bool > 과 bitset.전 자 는 동태 적 으로 증가 할 수 있 으 나 편리 하 게 비트 연산 을 할 수 없다.후 자 는 반대 다.
상기 두 가지 장점 을 결합 시 켰 습 니 다. 엄격 한 의미 의 '용기' 가 아니 라 교체 기 지원 을 제공 하지 않 습 니 다.
잠시 생략 하고 필요 할 때 vector < bool > 과 bitset 를 함께 연구 합 니 다.
 
해시 용기 (hash container) 는 보통 이 진 트 리 의 저장 방식 보다 더 높 은 접근 효율 을 제공 합 니 다.SGISTL, STLport 등 은 모두 각자 의 해시 용 기 를 실 현 했 고 이름 은 모두 hash 이다.set、hash_map, 기 존 코드 와 의 충돌 을 피하 기 위해 unordered 라 고 이름 을 지 었 습 니 다.xxx 의 형식 은 동시에 그것 이 무질서 하 다 는 것 을 나타 낸다.
산열 집합 unorderedset/unordered_multiset 는 표준 관련 용기 set / multiset 용법 과 같 습 니 다. 다만 내부 에 서 는 이 진 트 리 대신 산 목록 을 사용 하여 복잡 도 를 대수 에서 상수 로 낮 춥 니 다.
산열 매 핑 unorderedmap/unordered_multimap 는 위 와 같 습 니 다.
 
표준 라 이브 러 리 에서 제공 하 는 map / multimap 는 단 방향 맵 관계 로 < boost / bimap. hpp > 는 양 방향 맵 관 계 를 제공 합 니 다. 그 인 터 페 이 스 는 학습 부담 을 줄 이기 위해 STL 규범 에 부합 하도록 특별히 설계 되 었 습 니 다.
 
 

좋은 웹페이지 즐겨찾기