C++STL(Standard Template Library 标准模板库)是通用类模板和算法的集合,它提供给程序员一些标准的的数据结构的实现,如:queues(队列)、lists(链表)、stacks(栈)等
STL由六大组件组成
容器(Container)
算法(Algorithm)
迭代器(Iterator)
仿函数(Function object)
适配器(Adaptor)
空间配制器(allocator)
C++ Vector(向量容器)
Vector是一个线性顺序结构。相当于数组,但其大小可以不预先指定,并且自动扩展。它可以像数组一样被操作,由于它特性我们完全可以将vector 看作动态数组。
应用实例:定义一个Vector并且对其赋值,然后打印值
<span style="color:#000000;">#include <iostream>
#include <vector>
using namespace std;
void main()
{
//定义一个向量容器v1
vector<int> v1(5);
//对向量容器复制
for(int i=0; i<5; i++)
{
v1[i] = i + 1;
}
//定义向量容器v2
vector<int> v2(5);
v2 = v1;//将向量容器v1的值赋值给v2
//输出向量容器的值
for(int i=0; i<5; i++)
{
cout<<v2[i]<<endl;
}
system("pause");
}</span>
执行结果
扩展容器的大小
<span style="color:#000000;">#include <iostream>
#include <vector>
using namespace std;
void main()
{
//定义一个向量容器v1
vector<int> v3(0);
//扩展v3的大小,并且赋值
v3.push_back(3);
v3.push_back(4);
v3.push_back(5);
//得到v3的大小
int len = v3.size();
//输出v3的值
for(int i=0; i<len; i++)
{
cout<<v3[i]<<endl;
}
system("pause");
}</span>
执行结果:
使用vector处理教师信息
<span style="color:#000000;">#include <iostream>
#include <string>
#include <vector>
using namespace std;
//定义一个Teacher结构体
struct Teacher
{
string Name;
int Age;
};
void main()
{
//定义4个Teacher对象
struct Teacher t1, t2, t3;
//给Teacher对象赋值
t1.Name = "Tom";
t1.Age = 25;
t2.Name = "Mike";
t2.Age = 32;
t3.Name = "Lisa";
t3.Age = 24;
//定义一个存放Teacher结构的容器v3
vector<Teacher*> v3(0);
//扩展v3的大小,并且赋值
v3.push_back(&t1);
v3.push_back(&t2);
v3.push_back(&t3);
//得到v3的大小
int len = v3.size();
//输出老师的信息
for(int i=0; i<len; i++)
{
struct Teacher *temp = v3[i];
cout<<temp->Name<<"\t"<<temp->Age<<endl;
}
system("pause");
}</span>
执行结果