【STL】-迭代器的用法

时间:2021-05-05 17:08:59

初始化:

list<char>::iterator pos;

算法:

1. 遍历

  for(pos = col1.begin(); pos != col1.end(); ++pos){...}

代码:

 #include <iostream>
#include <vector>
#include <deque>
#include <set>
#include <algorithm>
#include <iterator> //for ostream_iterator&istream_iterator
#include "utility.h"
using namespace std; int main() {
vector<int> v;
vector<int>::iterator pos; for(int i = ; i >= ; i--)
v.push_back(i); //back_inserter调用push_back(), 适用于vector, deque, list
vector<int> col1;
copy(v.begin(), v.end(), back_inserter(col1));
PRINT_ELEMENT(col1); //front_inserter调用push_front(),适用于deque, list
deque<int> col2;
copy(v.begin(), v.end(), front_inserter(col2));
PRINT_ELEMENT(col2); //inserter调用inserter(), 适用于所有容器
set<int> col3;
copy(v.begin(), v.end(), inserter(col3, col3.end()));
PRINT_ELEMENT(col3); //ostream iterator
copy(col3.rbegin(), col3.rend(), ostream_iterator<int>(cout, " "));
cout << endl; //istream iterator
vector<string> col4;
copy(istream_iterator<string>(cin), istream_iterator<string>(), back_inserter(col4));
PRINT_ELEMENT(col4);
return ;
}

输出:

$ ./a.exe
content: content: content: abd adfasdf assdfasdf afewaf 1a ` adsfasdf
content:
abd adfasdf assdfasdf afewaf 1a ` adsfasdf