容器:c++帮我们创建了许多可以直接使用的类,这些类可以存储各式各样的元素,包括普通类型、指针型、
自定义对象等等都可以存储
算法:算法就是将一个个方法集成,可以直接使用这些方法去方便我们的日常使用、优化代码
简单的介绍容器的迭代器(iterator迭代器就相当于一个for循环,他的迭代器对象是一个位置指针)和vector容器存储元素
特别注意一点:当容器用来存指针的时候,it就变为二级指针,(*it)是指向一级指针的指针
#define _CRT_SECURE_NO_WARNINGS
#include "iostream"
using namespace std;
#include "vector"//使用到了vector容器就需要包含vector头文件
#include "algorithm"//使用算法时,需要包含algorithm头文件
//存整数类型
void save_int()
{
vector<int> Vector;//定义容器对象
Vector.push_back(1);//往容器中存放数据,vector使用push_back()
Vector.push_back(3);
Vector.push_back(3);
Vector.push_back(5);
//迭代器
//在容器中存在迭代器构造函数,创建一个迭代对象it,这个it是一个指针,它可以遍历这个Vector容器中的元素
for (vector<int>::iterator it = Vector.begin(); it != Vector.end(); it++)
{
cout << *it << endl;//迭代器对象it是一个指针
}
//算法
int num = count(Vector.begin(), Vector.end(),3);//计算元素在容器中的总个数
cout << num << endl;
}
class teacher
{
public:
teacher(int _age, char *_name)
{
age = _age;
name = _name;
}
void print()
{
cout << "age:" << age << " name:" << name << endl;
}
private:
int age;
char *name;
};
//存对象元素
void save_object()
{
teacher t1(25, "Jones25");//创建类对象
teacher t2(24, "Jones24");
teacher t3(23, "Jones23");
teacher t4(22, "Jones22");
vector<teacher> v1;//创建容器对象,用来存储类元素对象的容器
v1.push_back(t1);//向容器中添加类对象元素
v1.push_back(t2);
v1.push_back(t3);
v1.push_back(t4);
for (vector<teacher>::iterator it = v1.begin(); it != v1.end(); it++)
{
it->print();//it是位置指针,他指向的对象元素有print()方法,便可以使用
}
}
//存指针元素
void save_pointer()
{
teacher t1(25, "Mr.Jones25");//创建类对象元素
teacher t2(24, "Mr.Jones24");
teacher t3(23, "Mr.Jones23");
teacher t4(22, "Mr.Jones22");
vector<teacher *> v1;//创建容器,用来存储元素指针的容器(存什么元素是泛型决定的)
v1.push_back(&t1);//向容器中添加类对象元素地址(存指针)
v1.push_back(&t2);
v1.push_back(&t3);
v1.push_back(&t4);
for (vector<teacher *>::iterator it = v1.begin(); it != v1.end(); it++)
{
(*it)->print();//当存指针的时候,it就变为二级指针,(*it)是指向一级指针的变量
}
}
void main()
{
save_int();
save_object();
save_pointer();
}