练习3.24
请使用迭代器重做3.3.3节的最后一个练习。
解答:
这个略过吧。
练习3.25
3.3.3节划分分段的程序是使用下标运算符实现的,请利用迭代器改写该程序并实现完全相同的功能。
解答:
#include <iostream>
#include <vector>
using namespace std;
int main(){
vector<unsigned> scores(11, 0);
unsigned grade;
while (cin >> grade){
if (grade <= 100){
vector<unsigned>::iterator it = scores.begin();
it += grade / 10;
*it += 1;
}
}
for (auto i : scores){
cout << i << endl;
}
}
练习3.26
在100页的二分搜索程序中,为什么用的是mid = beg + (end - beg) / 2,而非mid = (beg + end) / 2;?
解答:
(beg + end)这个操作是不合法的,迭代器之间没有加法运算符。