📅  最后修改于: 2023-12-03 14:47:43.007000             🧑  作者: Mango
STL (Standard Template Library) 是 C++ 标准库中的一个部分,它提供了许多基本数据结构和算法的抽象实现,使得 C++ 程序员能够高效地实现各种任务。
STL 提供了许多基本数据结构的抽象实现,这些数据结构可以直接用于程序开发中。
Vector 是一种数组式的存储结构,它可以支持高效的随机访问和插入/删除操作。使用 vector 需要包含头文件 #include <vector>
#include <vector>
#include <iostream>
using namespace std;
int main()
{
//创建一个整型的vector,并插入5个元素
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);
v.push_back(5);
//输出vector的元素
for (auto i : v)
{
cout << i << " ";
}
cout << endl;
return 0;
}
上述代码创建了一个整型的 vector,并插入了 5 个元素。最后通过 for 循环遍历 vector 并输出每个元素。
Stack 是一个 LIFO (Last In First Out) 栈结构,它只提供在栈顶插入和删除元素的操作。使用 stack 需要包含头文件 #include <stack>
#include <stack>
#include <iostream>
using namespace std;
int main()
{
//创建一个整型的栈
stack<int> s;
//向栈中压入3个元素
s.push(1);
s.push(2);
s.push(3);
//弹出栈顶元素
s.pop();
//输出栈顶元素
cout << s.top() << endl;
return 0;
}
上述代码创建了一个整型的栈,并向其中压入了 3 个元素。然后通过 pop() 方法弹出栈顶元素,并通过 top() 方法输出当前栈顶元素。
Queue 是一个 FIFO (First In First Out) 队列结构,它只提供在队列尾插入和在队列头删除元素的操作。使用 queue 需要包含头文件 #include <queue>
#include <queue>
#include <iostream>
using namespace std;
int main()
{
//创建一个整型的队列
queue<int> q;
//向队列中插入3个元素
q.push(1);
q.push(2);
q.push(3);
//弹出队列头元素
q.pop();
//输出队列头元素
cout << q.front() << endl;
return 0;
}
上述代码创建了一个整型的队列,并向其中插入了 3 个元素。然后通过 pop() 方法弹出队列头元素,并通过 front() 方法输出当前队列头元素。
STL 还提供了许多基本算法的抽象实现,这些算法可以直接用于程序开发中。
STL 提供了多种排序算法的实现,其中最常用的是快速排序和归并排序。使用排序算法需要包含头文件 #include <algorithm>
快速排序是一种基于分治法的高效排序算法,它的平均时间复杂度为 O(nlogn)。
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
int main()
{
//创建一个整型的vector
vector<int> v{ 5, 3, 2, 4, 1 };
//对vector进行快速排序
sort(v.begin(), v.end());
//输出排序后的vector
for (auto i : v)
{
cout << i << " ";
}
cout << endl;
return 0;
}
上述代码创建了一个整型的 vector,并使用 STL 提供的 sort() 方法进行快速排序。最后通过 for 循环遍历 vector 并输出每个元素。
归并排序也是一种基于分治法的排序算法,它的时间复杂度为 O(nlogn)。
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
// 归并排序递归函数
void merge_sort(vector<int>& v, int begin, int end)
{
if (end - begin <= 1) return;
int mid = begin + (end - begin) / 2;
merge_sort(v, begin, mid);
merge_sort(v, mid, end);
inplace_merge(v.begin() + begin, v.begin() + mid, v.begin() + end);
}
int main()
{
//创建一个整型的vector
vector<int> v{ 5, 3, 2, 4, 1 };
//对vector进行归并排序
merge_sort(v, 0, v.size());
//输出排序后的vector
for (auto i : v)
{
cout << i << " ";
}
cout << endl;
return 0;
}
上述代码同样创建了一个整型的 vector,并使用 STL 提供的 merge_sort() 方法进行归并排序。最后通过 for 循环遍历 vector 并输出每个元素。
STL 是 C++ 标准库中提供的一个非常重要的部分,它能够大大提高程序员的效率和开发质量。本文介绍了 STL 中常用的数据结构和算法的实现方式,希望读者能够理解并在实际开发中应用到这些工具中。