Vector
定义:
1 vector<int> intVector(100); //申请了 100 个int的空间 并且全是0;
定位函数
你可以使用容器类方法来获取迭代器对象。两个典型的容器类方法是
begin()和end()。
1 std::vector<int>::iterator it=find(intVector.begin(),intVector.end(),100);
//显示找到的值
1 cout<<*it<<endl; //迭代器就像一个指针
迭代器
定义:
vector<int>::iterator first;
设置对象,设置值
1 first=intVector.begin();
2
3 *first=300;
常量迭代器与指向常量的迭代器
首先: *const必须在定义时初始化。。。
1.常量迭代器 定义
1 vector<int>::iterator const result=intVector.begin();
或者
const vector<int>::iterator result=intVector.begin();
2.指向常量的迭代器
vector<int>::const_iterator result=intVector.begin();
输出迭代器的应用。
1 #include "stdafx.h"
2
3 #include "iostream"
4
5 #include "time.h"
6
7 #include "algorithm"
8
9 #include "vector"
10
11
12
13 using namespace std;
14
15
16
17 void display(vector<int> & v,const char *s);
18
19 int _tmain(int argc, _TCHAR* argv[])
20
21 {
22
23
24
25 srand(time(NULL));
26
27 vector<int> colection(10);
28
29 for(int i=0;i<10;i++)
30
31 colection[i]=rand()%1000;
32
33
34
35 display(colection,"在排序之前:");
36
37 sort(colection.begin(),colection.end());
38
39 display(colection,"在排序之后:");
40
41 return 0;
42
43 }
44
45 void display(vector<int> & v,const char *s)
46
47 {
48
49 cout<<endl<<s<<endl;
50
51 copy(v.begin(),v.end(),ostream_iterator<int>(cout,"\t"));
52
53 }
54
55
ostream_iterator 输出迭代器
标准函数库里面 的初始化
函数Display()显示了如何使用一个输出流迭代器。下面的语句将容器中的值传输到cout 输出流对象中:
copy(v.begin(), v.end(),
ostream_iterator<int>(cout, "\t"));
第三个参数实例化了ostream_iterator<int>类型,并将它作为copy()函数的输出目标迭代器对象。
“\t”字符串是作为分隔符。运行结果:
$ g++ outstrm.cpp
$ ./a.out
Before sorting
677 722 686 238 964 397 251 118 11 312
After sorting
11 118 238 251 312 397 677 686 722 964
这是STL 神奇的一面『确实神奇』。为定义输出流迭代器,STL 提供了模板类ostream_iterator。这个
类的构造函数有两个参数:一个ostream 对象和一个string 值。因此可以象下面一样简单地创建一个迭
代器对象:
ostream_iterator<int>(cout, "\n")
该迭代起可以和任何接受一个输出迭代器的函数一起使用。
(引用)
迭代器提供对一个容器中的对象的访问方法
对于STL 数据结构和算法,你可以使用五种迭代器。下面简要说明了这五种类型:
· Input iterators 提供对数据的只读访问。
· Output iterators 提供对数据的只写访问
· Forward iterators 提供读写操作,并能向前推进迭代器。
· Bidirectional iterators 提供读写操作,并能向前和向后操作。
· Random access iterators 提供读写操作,并能在数据中随机移动。
作者:leisure
原文出自:http://www.cnblogs.com/leisure/
感谢园子,感谢各位支持。本文版权归伟征和博客园共有,欢迎转载@
但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
只是想分享,欢迎拍砖!促进我成长