迭代器(c++)

/*#include <iostream>
#include <vector>
using  namespace std;
int main()
{
 vector<int> vecInt;
 vecInt. push_back(1);
 vecInt. push_back(2);
 vecInt.push_back(3);
 int size = vecInt.size();

 vector<int> vecInt2(10);

 vector<int> vecInt3(5, 28);

 vector<int> vecInt4(vecInt3);
 //【,)
 /ector<int> vecInt5(vecInt.begin(), vecInt.begin() + 1);
 vector<int> vecInt5(vecInt.begin(), vecInt.begin() +2);
 vecInt.resize(10);//重新扩充10个数据长度。

 vector.resize(10);// 重新分配10个长度
 return 0;

}*/
//迭代器的几种用法:
#include <iostream>
#include <windows.h>
#include <algorithm>//sort()
#include <vector>
using namespace std;
void printfValue(int& a)
{
 cout << a << endl;
}
bool mySort(int a,int b)
{
 return a > b;//从大到小排序
}
int main()
{  
 vector<int> vecInt3;//就是这样定义容器的。
 vector<int>::iterator itInt;//就是这样定义迭代器的
 itInt = vecInt3.begin(); //第一个元素
 itInt = vecInt3.end();   //从逻辑认为是最后一个元素的下一个
 vecInt3.push_back(1);
 vecInt3.push_back(2);
 vecInt3.push_back(3);
 vecInt3.push_back(4);

 //int num = count(vecInt3.begin(),vecInt3.end(),28);//在vecInt3.begin()到vecInt3.end()范围找28.
 //cout << num<<endl;
 vector<int>::iterator itFind = find(vecInt3.begin(),vecInt3.end(),2);//功能同上,找不到报错
 int a = *itFind;
 cout << a <<endl<<"**************************"<< endl;

 sort(vecInt3.begin(), vecInt3.end(), mySort);//排序函数 (全局的)

 for_each(vecInt3.begin(), vecInt3.end(), printfValue);//在这个区间的数输出
 for (vector<int>::iterator it = vecInt3.begin(); it != vecInt3.end(); it++)// 利用迭代器输出1到4
 {
  cout << *it << endl;//迭代器本身是一个指针
 }
 for (int i = 0; i < vecInt3.size(); i++)// 利用下标输出1到4
 {
  cout << vecInt3[i] << endl;
 }


 vector<int>::const_iterator constIt;
 constIt = vecInt3.begin();

 vector<int>::reverse_iterator rlt;//是一种反向迭代器
 rlt = vecInt3.rend();
 rlt = vecInt3.rbegin();

 

 getchar();// system("pause");
 return 0;

 

}

posted @ 2017-09-24 10:53  阿蓉  阅读(213)  评论(0编辑  收藏  举报