代码如下
#include <iostream>
#include <iterator>
#include <vector>
#include <deque>
#include <algorithm>
using namespace std;
//先按照从大到小输出奇数,再从小到大输出偶数。
int main()
{
istream_iterator<int> i1(cin), i2;
vector<int> s1(i1, i2);
sort(s1.begin(), s1.end());
deque<int> s2;
for (vector<int>::iterator iter = s1.begin(); iter != s1.end(); ++iter){
if (*iter % 2 == 0){
s2.push_back(*iter);//偶数放在s2尾部
}
else
{ s2.push_front(*iter);}//奇数放在s2首部
}
// 输出s2
copy(s2.begin(), s2.end(), ostream_iterator<int>(cout, " "));
cout << endl;
return 0;
}
想请教一下为什么定义迭代器时候要用两个迭代器来组成vector。
s1.begin()是vector的头
s1.end()是vector的最后一个元素的下一个节点
begin()和end()这两个迭代器,并不是你理解的用两个迭代器来组成vector,只是为了便于遍历vector而定义的两个指针。
他想问的应该是为什么在构造vector时传入两个迭代器参数。同问。。