C++ STL 教程
优质
小牛编辑
135浏览
2023-12-01
希望您已经理解了我们之前讨论过的C ++模板的概念。 C ++ STL(标准模板库)是一组功能强大的C ++模板类,它通过模板提供通用类和函数,这些模板实现了许多常用的常用算法和数据结构,如向量,列表,队列和堆栈。
C ++标准模板库的核心是遵循三个结构良好的组件 -
Sr.No | 组件和说明 |
---|---|
1 | Containers 容器用于管理某种对象的集合。 有几种不同类型的容器,如deque,list,vector,map等。 |
2 | Algorithms 算法作用于容器。 它们提供了执行容器内容的初始化,排序,搜索和转换的方法。 |
3 | Iterators 迭代器用于遍历对象集合的元素。 这些集合可以是容器的容器或子集。 |
在讨论C ++标准库时,我们将在下一章讨论所有三个C ++ STL组件。 现在,请记住,所有这三个组件都有一组丰富的预定义函数,这些函数可以帮助我们以非常简单的方式完成复杂的任务。
让我们使用以下程序演示向量容器(C ++标准模板),它类似于一个数组,但有一个例外,它会自动处理它自己的存储需求,以防它增长 -
#include <iostream>
#include <vector>
using namespace std;
int main() {
// create a vector to store int
vector<int> vec;
int i;
// display the original size of vec
cout << "vector size = " << vec.size() << endl;
// push 5 values into the vector
for(i = 0; i < 5; i++) {
vec.push_back(i);
}
// display extended size of vec
cout << "extended vector size = " << vec.size() << endl;
// access 5 values from the vector
for(i = 0; i < 5; i++) {
cout << "value of vec [" << i << "] = " << vec[i] << endl;
}
// use iterator to access the values
vector<int>::iterator v = vec.begin();
while( v != vec.end()) {
cout << "value of v = " << *v << endl;
v++;
}
return 0;
}
编译并执行上述代码时,会产生以下结果 -
vector size = 0
extended vector size = 5
value of vec [0] = 0
value of vec [1] = 1
value of vec [2] = 2
value of vec [3] = 3
value of vec [4] = 4
value of v = 0
value of v = 1
value of v = 2
value of v = 3
value of v = 4
以下是与上述示例中使用的各种功能相关的要点 -
push_back()成员函数在向量的末尾插入值,根据需要扩展其大小。
size()函数显示向量的大小。
函数begin()返回一个迭代器到向量的开头。
函数end()将迭代器返回到向量的末尾。