c++入门
本文最后更新于 2024年11月10日 下午
c++入门
STL标准模板库
容器(Containers)
容器是STL的核心组件之一,提供了各种数据结构,如向量、列表、集合、映射等。这些容器提供了不同的操作和特性,可以根据需要选择合适的容器。
以下是一些常用的STL容器:
vector:动态数组,提供快速的随机访问。
list:双向链表,支持快速插入和删除操作。
set:有序集合,存储唯一的元素。
map:有序映射,存储键值对。
stack:堆栈,先进后出(LIFO)的数据结构。
queue:队列,先进先出(FIFO)的数据结构。
vector(动态数组)
1 |
|
常用成员函数
- size():返回 vector 中的元素数量。
- empty():检查 vector 是否为空。
- push_back(value):在 vector 的末尾添加一个元素。
- pop_back():删除 vector 的最后一个元素。
- front():访问 vector 的第一个元素。
- back():访问 vector 的最后一个元素。
- clear():清空 vector 中的所有元素。
- insert(position, value):在指定位置插入一个元素。
- erase(position):删除指定位置的元素。
- erase(begin, end):删除指定范围内的元素。
遍历动态数组元素
1 |
|
list(双向链表)
1 |
|
常用成员函数
- size():返回 list 中的元素数量。
- empty():检查 list 是否为空。
- push_back(value):在 list 的末尾添加一个元素。
- push_front(value):在 list 的开头添加一个元素。
- pop_back():删除 list 的最后一个元素。
- pop_front():删除 list 的第一个元素。
- front():访问 list 的第一个元素。
- back():访问 list 的最后一个元素。
- clear():清空 list 中的所有元素。
- insert(position, value):在指定位置插入一个元素。
- erase(position):删除指定位置的元素。
- erase(begin, end):删除指定范围内的元素。
map(关联容器)
概述
map
是一个关联容器,它提供了一对一的键值对存储和访问功能。它基于红黑树
实现,具有自动排序的特性,键值对按键进行排序,并且可以快速地进行插入、删除和查找操作。
1 |
|
常用成员函数
size():返回 map 中的键值对数量。
empty():检查 map 是否为空。
insert({key, value}):插入一个键值对到 map 中。
erase(key):删除指定键的键值对。
clear():清空 map 中的所有键值对。
find(key):查找指定键对应的迭代器。
begin():返回指向第一个键值对的迭代器。
end():返回指向最后一个键值对之后的迭代器。
遍历map容器的元素
1 |
|
set(关联容器)
概述
set
是一个关联容器,它存储唯一的元素,且自动按照键进行排序。set
的底层实现基于红黑树,具有快速的插入、删除和查找操作
1 |
|
常用成员函数
- size():返回 set 中的元素数量。
- empty():检查 set 是否为空。
- insert(value):向 set 中插入一个元素。
- erase(value):删除 set 中指定的元素。
- clear():清空 set 中的所有元素。
- find(value):查找 set 中是否存在指定的元素。
- begin():返回指向第一个元素的迭代器。
- end():返回指向最后一个元素之后的迭代器。
stack(适配器容器)
概述
stack
是一个适配器容器,它提供了栈(先进后出)的行为。stack
内部使用其他容器作为其底层实现,默认情况下使用 deque
作为底层容器。
1 |
|
常用成员函数
size()
:返回 stack 中的元素数量。empty()
:检查 stack 是否为空。push(value)
:将元素压入 stack。pop()
:弹出 stack 的顶部元素。top()
:返回 stack 的顶部元素的引用。
queue(适配器容器)
概述
queue
是一个适配器容器,它提供了队列(先进先出)的行为。queue
内部使用其他容器作为其底层实现,默认情况下使用 deque
作为底层容器。
1 |
|
常用成员函数
size():返回 queue 中的元素数量。
empty():检查 queue 是否为空。
push(value):将元素加入到 queue 的末尾。
pop():移除 queue 的首个元素。
front():返回 queue 的首个元素的引用。
back():返回 queue 的末尾元素的引用。
STL算法
std::reverse()
1 |
|
std::replace()
std::replace()
算法用于将容器中的指定值替换为另一个值。
1 |
|
std::transform()
算法用于对容器中的元素应用一个操作,并将结果存储到另一个容器中
1 |
|
std::for_each()
1 |
|
std::binary_search()
std::binary_search()
算法用于在已排序的容器中执行二分查找。
1 |
|
std::copy()
算法用于将一个容器中的元素复制到另一个容器中。
1 |
|
std::remove()
算法用于从容器中移除指定值的元素,但并不实际删除这些元素,而是将它们移到容器的末尾,并返回一个指向新的逻辑末尾的迭代器。
1 |
|
std::unique()
算法用于移除容器中的连续重复元素,并返回一个指向新的逻辑末尾的迭代器。
1 |
|
std::min_element()
算法用于在容器中找到最小元素,并返回指向该元素的迭代器。
1 |
|
std::max_element()
算法用于在容器中找到最大元素,并返回指向该元素的迭代器。
1 |
|