成员函数
访问
成员函数
函数说明
at(key)
带有边界检查,返回对键为 key 的元素的引用。如果键不存在,则抛出 std::out_of_range 异常。
operato...
阅读更多
链表
多使用变量,逻辑会变得清晰,如prev,cur,next
虚拟头节点
快慢指针
前后指针
阅读更多
std::stack是一种适配器容器,它提供了一个后进先出(LIFO)的数据结构。
std::stack的模板格式:
template< T, Container = std::stack<T> > class stack;
其中:
T: 数据类型
Container: 底层...
阅读更多
std::stack是一种适配器容器,它提供了一个先进先出(FIFO)的数据结构。
std::queue的模板格式:
template< T, Container = std::deque<T> > class queue;
其中:
T: 数据类型
Container: 底层...
阅读更多
优先队列std::priority_queue 是 一个容器适配器。它是一个特殊的队列,具有队列的所有特性。
std::priority_queue的特殊之处就是它自动保持队列中的元素有序,确保队首元素始终是最高优先级的元素。
容器适配器是一种特殊的类模板,它不直接管理元素,而是封装一个已有的底层容器,...
阅读更多
std::list是由双向链表来实现。
std::list在任何位置执行插入和删除的复杂度都为O(1)。
在std::list中添加、移动和移除元素不会使迭代器或引用失效,迭代器只有在对应元素被删除时才会失效。
template <typename T>
class list {
T v...
阅读更多
std::forward_list支持从容器中的任何位置快速插入和移除元素的容器。不支持快速随机访问。
std::forward_list实现为单链表,且实质上与其在C中的实现相比无任何开销。
与std::list相比,std::forward_list在不需要双向迭代时提供更好的存储空间效率。
forwa...
阅读更多
vector是一种封装动态数组的序列容器,在内存中连续排列。
vector的size
vector对象大小是固定的。
class vector {
...
protected:
iterator start; // 目前使用空间的头
iterator finish; ...
阅读更多