注:本文不具有教学意义,仅作个人复习参考!
目录
1. 插入迭代器
1.1 反向插入迭代器:front_insert_iterator
1.2 前向插入迭代器:back_insert_iterator
1.3 插入迭代器:insert_iterator
2. 反向遍历迭代器
3. 流迭代器
1. 插入迭代器
前向插入:容器一定要有push_front()
后向插入:容器一定要有push_back()
1.1 反向插入迭代器:front_insert_iterator
1.2 前向插入迭代器:back_insert_iterator
1.3 插入迭代器:insert_iterator
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
vectorvec(arr, arr + 10);
dequedeq(arr, arr + 10);
int brr[] = { 33,44,55,66,77 };
listli(brr, brr+5);
//定义一个插入迭代器
insert_iterator> iterInsert(vec, vec.begin() + 3);
copy(li.begin(), li.end(), iterInsert);
for (int elem : vec) {
cout << elem << " ";
}
cout << endl;
//头插入迭代器
front_insert_iterator>front_it(deq);
copy(li.begin(), li.end(), front_it);
for (auto it : deq) {
cout << it << " ";
}
cout << endl;
//尾插入迭代器
back_insert_iterator>back_it(deq);
copy(li.begin(), li.end(), back_it);
for (auto it : deq) {
cout << it << " ";
}
cout << endl;
1.3 插入迭代器:insert_iterator
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
vectorvec(arr, arr + 10);
dequedeq(arr, arr + 10);
int brr[] = { 33,44,55,66,77 };
listli(brr, brr+5);
//定义一个插入迭代器
insert_iterator> iterInsert(vec, vec.begin() + 3);
copy(li.begin(), li.end(), iterInsert);
for (int elem : vec) {
cout << elem << " ";
}
cout << endl;
//头插入迭代器
front_insert_iterator>front_it(deq);
copy(li.begin(), li.end(), front_it);
for (auto it : deq) {
cout << it << " ";
}
cout << endl;
//尾插入迭代器
back_insert_iterator>back_it(deq);
copy(li.begin(), li.end(), back_it);
for (auto it : deq) {
cout << it << " ";
}
cout << endl;
2. 反向遍历迭代器
//int arr[] = { 1,2,3,4,5,6,7,8,9,10 }; vectorv1(arr, arr + 10); vector ::reverse_iterator riter(v1.end()); cout << "反向迭代器的数据" << *riter << endl; cout << "反向头迭代器的数据" << *v1.rbegin() << endl; vector ::iterator pos1; pos1 = find(v1.begin(), v1.end(), 6); vector ::reverse_iterator rpos1(pos1); cout << *pos1 << " " << *rpos1 << endl;