C + + primer 학습: 표준 라 이브 러 리 특수 시설: bitset

1843 단어
(1): 표준 라 이브 러 리 는 bitset 류 를 정의 하여 비트 연산 의 사용 을 더욱 쉽게 합 니 다.
예 1: 하나의 데이터 구 조 를 정의 하고 성형 대상 을 포함 하 며 10 개의 문 도 를 포함 한 테스트 에 대한 해답 을 기록 합 니 다. 함 수 를 만 들 면 답 을 업데이트 할 수 있 습 니 다. 함 수 를 만 들 면 학생 성적 을 얻 을 수 있 습 니 다.
//  :      bitset     ,                         .
template<size_t M>
class test
{
    template<size_t N>
    friend size_t grade(test<N>const&, test<N>const&);
public:
    test(size_t n) :bvec(n){}
    void inline update(size_t index, bool is_true){bvec[index] = is_true;}
private:
    bitset<M>bvec;
};
template<size_t N>
size_t grade(test<N>const& lhs, test<N>const& rhs)
{
    auto score = (lhs.bvec^rhs.bvec);
    return score.size() - score.count();
}
int main()
{
    test<10>ans(999);
    test<10>stu(987);
    cout<<  grade<10>(ans, stu);
    return 0;
}

좋은 웹페이지 즐겨찾기