64)vertor 简单使用

1)简单 代码样例:我的理解   vector  其实就是一个简单的数组,然后通过迭代器来进行 遍历数组中的值,而且有自带push_back()来添加元素

 

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<vector>
 4 using namespace std;
 5  void hanshu()
 6 {
 7  vector<int> v1;//v1是一个容器,将你的元素copy到容器中
 8  v1.push_back(3);//这个是开始,也就是v1.begin()
 9  v1.push_back(4);
10  v1.push_back(5);//这个是结束,也就是v1.end()
11  //3   4    5
12  //↑ →    →
13  for(vector<int>::iterator t=v1.begin();t!=v1.end();t++)
14  
15  {
16      //这个迭代器t就是 v1这个数组中一个元素的指针
17      //所以  取值要加*
18     cout << *t <<endl;
19     cout<<"!!!!!!!!!!!!!!!!!!"<<endl;
20  }
21 
22     
23  }
24  int main()
25  {
26  
27  hanshu();
28     return 0;
29  }

 

2)迭代器  有双向迭代器,也有单项迭代器。

3)算法和迭代器能进行无缝的连接

  

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<vector>
 4 using namespace std;
 5 
 6  void hanshu()
 7 {
 8  vector<int> v1;//v1是一个容器,将你的元素copy到容器中
 9  v1.push_back(-1);
10  v1.push_back(3);
11  v1.push_back(4);
12  v1.push_back(5);
13  
14  //算法,算法和迭代器能进行无缝的连接
15  cout<<"~~~~~~~"<<count(v1.begin(),v1.end(),3)<<endl;
16  for(vector<int>::iterator t=v1.begin();t!=v1.end();t++)
17  
18  {
19      //这个迭代器t就是 v1这个数组中一个元素的指针
20      //所以  取值要加*
21     cout << *t <<endl;
22     cout<<"!!!!!!!!!!!!!!!!!!"<<endl;
23  }
24 
25     
26  }
27  int main()
28  {
29  
30  hanshu();
31     return 0;
32  }

 

然后是类的迭代器,其实子容器中,可以放任何类型的变量。

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<vector>
 4 using namespace std;
 5 class student
 6 {
 7 public:
 8     student(int a)
 9     {
10         age=a;
11     }
12 public:
13     void show()
14     {
15         cout<<age<<endl;
16     }
17 public:
18     int age;
19 
20 };
21  void hanshu()
22 {
23     //容器实现了数据类型  和 算法的有效分离
24     //v1是一个容器,将你的元素copy到容器中
25  vector<student> v1;
26  student s1(10);
27  student s2(20);
28  student s3(30);
29  v1.push_back(s1);
30  v1.push_back(s2);
31  v1.push_back(s3);
32 
33  
34 
35  for(vector<student>::iterator t=v1.begin();t!=v1.end();t++)
36  
37  {
38      //这个迭代器t就是 v1这个数组中一个元素的指针
39      //所以  取值要加*
40      cout << t->age <<endl;
41     cout<<"!!!!!!!!!!!!!!!!!!"<<endl;
42  }
43 
44     
45  }
46  int main()
47  {
48  
49  hanshu();
50     return 0;
51  }

 

我还可以存我的 对象的首地址,但是  我的容器存的类型要变了    vector<类名*>  v1

 

 1 #include<iostream>
 2 #include<algorithm>
 3 #include<vector>
 4 using namespace std;
 5 class student
 6 {
 7 public:
 8     student(int a)
 9     {
10         age=a;
11     }
12 public:
13     void show()
14     {
15         cout<<age<<endl;
16     }
17 public:
18     int age;
19 
20 };
21  void hanshu()
22 {
23     //容器实现了数据类型  和 算法的有效分离
24     //v1是一个容器,将你的元素copy到容器中
25  vector<student> v1;
26  student s1(10);
27  student s2(20);
28  student s3(30);
29  v1.push_back(s1);
30  v1.push_back(s2);
31  v1.push_back(s3);
32 
33  
34 
35  for(vector<student>::iterator t=v1.begin();t!=v1.end();t++)
36  
37  {
38      //这个迭代器t就是 v1这个数组中一个元素的指针
39      //所以  取值要加*
40      cout << t->age <<endl;
41     cout<<"!!!!!!!!!!!!!!!!!!"<<endl;
42  }
43 
44     
45  }
46  int main()
47  {
48  
49  hanshu();
50     return 0;
51  }

 

posted @ 2018-01-14 11:04  小油菜1  阅读(176)  评论(0编辑  收藏  举报