C++ Primer(第5版) 练习 17.13
练习 17.13 编写一个整型对象,包含真/假测验的正确答案。使用它来为前两题中的数据结构生成测验成绩。
环境:Linux Ubuntu(云服务器)
工具:vim
代码块:
#include<iostream>
#include<bitset>
using namespace std;template <size_t N> class exam {public:exam(): s() {]size_t get_size() { return N; }void set_solution(size_t n, bool b) { s.set(n, b); }bitset<N> get_solution() const { return s; }size_t score(const bitset<N> &a);private:bitset<N> s;
};template <size_t N> size_t exam<N>::score(const bitset<N> &a){size_t ret = 0;for(size_t i = 0; i < N; i++){if(s[i] == a[i]){ret++;}}return ret;
}int main(){exam<100> e;e.set_solution(0, 1);e.set_solution(99, 1);cout<<e.get_solution()<<endl;bitset<100> a;cout<<e.score(a)<<" correct answers out of "<<e.get_size()<<endl;return 0;
}