📅  最后修改于: 2023-12-03 15:35:57.775000             🧑  作者: Mango
C++ 的 STL(Standard Template Library)是一个广泛使用的库,它包含了许多常用的数据结构和算法。然而,如果要使用 STL 中的某个特定部分,我们需要为其导入相关的库。
以下是一些常见的 STL 导入库:
#include <iostream>
- 输入/输出流#include <vector>
- 动态数组#include <list>
- 链表#include <map>
- 关联数组#include <algorithm>
- 标准算法#include <string>
- 字符串处理输入/输出流库 iostream
提供了对标准输入输出的支持,其包括 cin
、cout
、cerr
和 clog
等常用输出对象,可以使用 <<
和 >>
等运算符对其进行操作。
#include <iostream>
using namespace std;
int main() {
cout << "Hello, world!" << endl;
int x;
cin >> x;
return 0;
}
动态数组库 vector
实现了一个类似于数组的容器,支持动态增长和缩小。它的基本操作包括插入、删除、遍历等。
#include <vector>
using namespace std;
int main() {
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
for (int i = 0; i < v.size(); i++) {
cout << v[i] << endl;
}
return 0;
}
链表库 list
实现了一个双向链表,支持插入、删除等操作。与动态数组相比,链表更适合处理频繁的元素操作。
#include <list>
using namespace std;
int main() {
list<int> l;
l.push_back(1);
l.push_back(2);
l.push_back(3);
for (list<int>::iterator it = l.begin(); it != l.end(); it++) {
cout << *it << endl;
}
return 0;
}
关联数组库 map
实现了一个类似于字典的容器,支持按键访问和插入。它的基本操作包括插入、删除、遍历等。
#include <map>
#include <string>
using namespace std;
int main() {
map<string, int> m;
m["Alice"] = 22;
m["Bob"] = 18;
m["Charlie"] = 27;
for (map<string, int>::iterator it = m.begin(); it != m.end(); it++) {
cout << it->first << ": " << it->second << endl;
}
return 0;
}
标准算法库 algorithm
提供了许多常见的算法,包括排序、查找、合并等。这些算法适用于各种容器类型,包括数组、链表、关联数组等。
#include <algorithm>
#include <vector>
using namespace std;
int main() {
vector<int> v = {3, 1, 4, 1, 5, 9, 2, 6, 5};
sort(v.begin(), v.end());
for (int x : v) {
cout << x << endl;
}
return 0;
}
字符串处理库 string
提供了对字符串的基本操作,包括子串提取、查找、替换等。它与动态数组类似,但是更加方便且安全。
#include <string>
using namespace std;
int main() {
string s = "Hello, world!";
cout << s.substr(0, 5) << endl; // "Hello"
cout << s.find(",") << endl; // 5
s.replace(7, 5, "you"); // "Hello, you!"
cout << s << endl;
return 0;
}