C++ 标准模板库的核心包括以下三个组件:
1、容器(Containers):容器是用来管理某一类对象的集合。C++ 提供了各种不同类型的容器,比如 deque、list、vector、map 等
2、算法(Algorithms):算法作用于容器。它们提供了执行各种操作的方式,包括对容器内容执行初始化、排序、搜索和转换等操作。
3、迭代器(iterators):迭代器用于遍历对象集合的元素。这些集合可能是容器,也可能是容器的子集。
例子:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
//创建一个向量存储list
vector <int> vec;
//显示vec大小
cout << "vector size = " << vec.size() << endl;
//将值压入向量
for(int i = 0; i < 5; ++i)
{
vec.push_back(i);
}
//显示大小
cout << "vector size = " << vec.size() << endl;
//显示值
#if 0
for(int i = 0; i < 5; ++i)
{
vector<int>::iterator k = vec.begin();
int value = vec.front();
vec.erase(k); //删除第一个元素
cout << "vector value = " << value << endl;
}
#endif
//使用迭代器 iterator 访问值
vector<int>::iterator k = vec.begin();
while(k != vec.end())
{
//cout << "value = " << k << endl;
cout << "value of k = " << *k << endl;
k++;
}
运行结果:
vector size = 0
vector size = 5
value of k = 0
value of k = 1
value of k = 2
value of k = 3
value of k = 4
注意:
push_back( ) 成员函数在向量的末尾插入值,如果有必要会扩展向量的大小。
size( ) 函数显示向量的大小。
begin( ) 函数返回一个指向向量开头的迭代器。
end( ) 函数返回一个指向向量末尾的迭代器。
erase() 函数删除vector容器中的一个或者一段元素,在删除一个元素的时候,其参数为指向相应元素的迭代器,而在删除一段元素的时候,参数为指向一段元素的开头的迭代器以及指向结尾元素的下一个元素的迭代器(需要经常删除第一个元素最好用deque,deque支持高效插入和删除容器的头部元素,因此也叫做双端队列)
front() 返回当前vector容器中起始元素的引用。
size() 是当前 vector 容器真实占用的大小,也就是容器当前拥有多少个容器。