STL容器适配器:stack核心总结

std::stack是一种适配器容器,它提供了一个后进先出(LIFO)的数据结构。 std::stack的模板格式: template< T, Container = std::stack<T> > class stack; 其中: T: 数据类型 Container: 底层...

阅读更多

STL容器适配器:queue核心总结

std::stack是一种适配器容器,它提供了一个先进先出(FIFO)的数据结构。 std::queue的模板格式: template< T, Container = std::deque<T> > class queue; 其中: T: 数据类型 Container: 底层...

阅读更多

STL容器适配器:priority_queue核心总结

优先队列std::priority_queue 是 一个容器适配器。它是一个特殊的队列,具有队列的所有特性。 std::priority_queue的特殊之处就是它自动保持队列中的元素有序,确保队首元素始终是最高优先级的元素。 容器适配器是一种特殊的类模板,它不直接管理元素,而是封装一个已有的底层容器,...

阅读更多

STL容器:list核心总结

std::list是由双向链表来实现。 std::list在任何位置执行插入和删除的复杂度都为O(1)。 在std::list中添加、移动和移除元素不会使迭代器或引用失效,迭代器只有在对应元素被删除时才会失效。 template <typename T> class list { T v...

阅读更多

STL容器:forward_list核心总结

std::forward_list支持从容器中的任何位置快速插入和移除元素的容器。不支持快速随机访问。 std::forward_list实现为单链表,且实质上与其在C中的实现相比无任何开销。 与std::list相比,std::forward_list在不需要双向迭代时提供更好的存储空间效率。 forwa...

阅读更多

STL容器:vector核心总结

vector是一种封装动态数组的序列容器,在内存中连续排列。 vector的size vector对象大小是固定的。 class vector { ... protected: iterator start; // 目前使用空间的头 iterator finish; ...

阅读更多

STL容器:string核心总结

string并不是一个单独的容器,只是basic_string 模板类的一个特化,basic_string用于创建可以存储任何类型字符的字符串类: template< typename _CharT, // 字符的类型 typename _Tr...

阅读更多

STL容器:deque核心总结

deque属于顺序容器的一种,是一个双端队列,它允许在容器的两端进行快速插入和删除元素的操作。 deque虽然支持像vector一样样的按索引访问,但其随机访问效率不如vector。 std::deque适用于需要在首尾两端频繁进行插入和删除的场景。 deque的底层实现 deque的元素不连续存储,而是由...

阅读更多