C++ primer 第五版 中文版 练习 10.35
题目:使用普通迭代器逆序打印一个vector。
答:
这个提供以下两种:
1> 用了 goto 当然也可以用 break;个人觉得goto 明了些。
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
using namespace std;
int main()
{
vector<int> ivect = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
for (auto e = ivect.end() - 1; e >= ivect.begin(); --e)
{
cout << *e << " ";
if (e == ivect.begin())
goto end;
}
end:
cout << endl;
return 0;
}
2> do - while 个人认为这个更好。没了硬跳出循环的控制。
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
using namespace std;
int main()
{
vector<int> ivect = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
vector<int>::iterator iter = ivect.end();
do{
iter--;
cout << *iter << " ";
} while (iter != ivect.begin());
cout << endl;
return 0;
}