容器提供迭代器 迭代器可以理解为指针(实际上并不是指针)
实际上迭代器是一个类对象,这个类封装了一个指针
迭代器的begin就指向数组的首个元素的
迭代器的end就指向数组的最后一个元素的下一个
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
class Person
{
public:
Person(int age,int num):age(age),num(num){}
public:
int age;
int num;
};
void print(int s)
{
cout << s << " ";
}
void test()
{
vector<int >s;
s.push_back(10);//尾插
s.push_back(12);
s.push_back(13);
s.push_back(14);
s.push_back(15);
int a = 20;
//尾删
// 容器提供迭代器 迭代器可以理解为指针(实际上并不是指针)
//实际上迭代器是一个类对象,这个类封装了一个指针
vector<int>::iterator pbegin = s.begin();
vector<int>::iterator pend = s.end();
//遍历通过容器提供的for_each()
for_each(pbegin, pend, print);//输出通过回调函数来打印
}
int count_(int* arr)
{
int num = 3;
int time = 0;
while (*arr)
{
if (*arr == num)
{
time++;
}
arr++;
}
return time;
}
void test2()
{
int arr[]={ 1,2,3,5,6,4,5,3,6 };
int* begin = arr;//迭代器的begin就指向数组的首个元素的
int* end = &arr[sizeof(arr)/sizeof(int)];//指向最后一个元素的下一个 数组最大元素下标等数组元素个数-1
int time = count_(arr);
cout << time << endl;
}
void test3()
{
vector<Person> v;
/*Person* p1 = new Person(10, 20);*/
Person p1(10, 20);
Person p2(30, 40);
v.push_back(p1);
v.push_back(p2);
for (vector<Person>::iterator a = v.begin();a!=v.end();a++)
{
cout <<a->age << endl;
cout << a->num << endl;
}
}
int main()
{
}
记录初识stl