C++ STL 容器使用指南

需积分: 50 1 下载量 101 浏览量 更新于2024-09-19 收藏 581KB PDF 举报
C++ STL 使用例子大全 C++ STL(Standard Template Library)是 C++ 编程语言的基础组件之一,提供了许多有用的容器、算法和迭代器,帮助程序员更方便地编写高效、可靠的程序。本文将对 STL 的使用进行详细介绍,并提供了丰富的使用例子。 一、容器(Container) 容器是 STL 的核心组件之一,提供了多种数据结构,例如向量(Vector)、双端队列(Deque)、链表(List)、集合(Set)、多重集合(Multiset)、映射(Map)和多重映射(Multimap)等。这些容器可以存储和管理大量数据,提供了许多有用的操作,例如插入、删除、遍历和查找等。 1. 向量(Vector) 向量是一种可变长的数组,提供了许多有用的操作,例如插入、删除、遍历和查找等。下面是一个简单的向量使用例子: ```cpp #include <vector> #include <iostream> int main() { std::vector<int> v; v.push_back(1); v.push_back(2); v.push_back(3); for (int i = 0; i < v.size(); i++) { std::cout << v[i] << " "; } return 0; } ``` 2. 双端队列(Deque) 双端队列是一种特殊的向量,提供了在队列两端插入和删除元素的操作。下面是一个简单的双端队列使用例子: ```cpp #include <deque> #include <iostream> int main() { std::deque<int> d; d.push_back(1); d.push_front(2); for (int i = 0; i < d.size(); i++) { std::cout << d[i] << " "; } return 0; } ``` 3. 链表(List) 链表是一种动态链表,提供了插入、删除和遍历等操作。下面是一个简单的链表使用例子: ```cpp #include <list> #include <iostream> int main() { std::list<int> l; l.push_back(1); l.push_back(2); l.push_back(3); for (std::list<int>::iterator it = l.begin(); it != l.end(); it++) { std::cout << *it << " "; } return 0; } ``` 4. 集合(Set) 集合是一种无序的容器,提供了插入、删除和遍历等操作。下面是一个简单的集合使用例子: ```cpp #include <set> #include <iostream> int main() { std::set<int> s; s.insert(1); s.insert(2); s.insert(3); for (std::set<int>::iterator it = s.begin(); it != s.end(); it++) { std::cout << *it << " "; } return 0; } ``` 5. 多重集合(Multiset) 多重集合是一种无序的容器,提供了插入、删除和遍历等操作。下面是一个简单的多重集合使用例子: ```cpp #include <multiset> #include <iostream> int main() { std::multiset<int> ms; ms.insert(1); ms.insert(2); ms.insert(2); for (std::multiset<int>::iterator it = ms.begin(); it != ms.end(); it++) { std::cout << *it << " "; } return 0; } ``` 6. 映射(Map) 映射是一种键值对容器,提供了插入、删除和遍历等操作。下面是一个简单的映射使用例子: ```cpp #include <map> #include <iostream> int main() { std::map<std::string, int> m; m["Alex"] = 20; m["John"] = 30; m["Robert"] = 40; for (std::map<std::string, int>::iterator it = m.begin(); it != m.end(); it++) { std::cout << it->first << ": " << it->second << std::endl; } return 0; } ``` 7. 多重映射(Multimap) 多重映射是一种键值对容器,提供了插入、删除和遍历等操作。下面是一个简单的多重映射使用例子: ```cpp #include <multimap> #include <iostream> int main() { std::multimap<std::string, int> mm; mm.insert(std::make_pair("Alex", 20)); mm.insert(std::make_pair("John", 30)); mm.insert(std::make_pair("Robert", 40)); for (std::multimap<std::string, int>::iterator it = mm.begin(); it != mm.end(); it++) { std::cout << it->first << ": " << it->second << std::endl; } return 0; } ``` 二、算法(Algorithm) STL 提供了许多有用的算法,例如排序、查找、遍历等。下面是一个简单的算法使用例子: ```cpp #include <algorithm> #include <iostream> int main() { int arr[] = {4, 2, 7, 1, 3}; std::sort(arr, arr + 5); for (int i = 0; i < 5; i++) { std::cout << arr[i] << " "; } return 0; } ``` 三、迭代器(Iterator) 迭代器是一种特殊的指针,提供了遍历容器的操作。下面是一个简单的迭代器使用例子: ```cpp #include <vector> #include <iostream> int main() { std::vector<int> v; v.push_back(1); v.push_back(2); v.push_back(3); for (std::vector<int>::iterator it = v.begin(); it != v.end(); it++) { std::cout << *it << " "; } return 0; } ``` STL 提供了许多有用的容器、算法和迭代器,帮助程序员更方便地编写高效、可靠的程序。