STEMHA's Blog

queue常用操作

queue初始化方法

1
queue<int>q;

stack常用操作

stack初始化方法

1
2
3
std::stack<int> q;
std::stack<int> second(first);
std::stack<int, std;:vector<int>> third; 使用vector初始化stack

vector常用操作

vector初始化方法

1
2
3
vector<int> vec;       初始化size为0vector
vector<int> vec(10); 初始化size为10,默认值都为0vector
vector<int> vec(10,1); 初始化size为10,值都为1vector

使用栈实现的队列

算法思想

无序数组排序后的最大相邻差

解法1:

环状链表判断算法

判断该链表是否有环

  1. 采用两个指针,一个用来遍历,一个用来从头到当前遍历位置的数据对比。
    思想:比较元素是否出过;
    复杂度:时间O(n^2),空间O(1)
  2. hash表的方法,记录元素,一旦在hash表中出现过,就证明有环
    复杂度:时间O(n),空间O(n)
  3. 双指针类型方法:两个指针p1和p2,让它们同时指向这个链表的头节点。然后开始一个大循环,在循环体中,让指针p1每次向后移动1个节点,让指针p2每次向后移动2个节点,然后比较
    两个指针指向的节点是否相同。如果相同,则可以判断出链表有环,如果不同,则继续下一次循环。
    思想:追及问题,让快的先跑,如果有环,快的绕一圈后肯定会追上慢的。
    复杂度:时间O(n),空间O(1)

数据结构总结

(未完待续)

C++标准库容器类概述

基础概念

容器(container)

  • 容纳特定类型对象的集合。
  • C++中所有的容器都是类模板。
  • 所有容器类型都定义了默认构造函数,用于创建指定类型的空容器对象。容器默认构造函数不带参数。
  • 为了使程序更清晰、简短,容器类型最常用的构造函数是默认构造函数。在大多数的程序中,使用默认构造函数能达到最佳运行时性能,并且使容器更容易使用。

设计模式总结

设计模式是什么?

C++特性及优缺点

C++语言优缺点

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×