当前位置: 首页 > wzjs >正文

长沙网站建设公司名单东莞人才市场现场招聘会地址

长沙网站建设公司名单,东莞人才市场现场招聘会地址,网站的表单,免费的crm软件系统Unity中Stack用法以及删除Stack的方法 介绍Stack<T>的APIStack<T> 常用方法创建和初始化 Stack<T>Push 和 Pop 操作Stack<T>遍历清空栈检查栈是否包含某个元素 栈的典型应用场景撤销操作深度优先搜索&#xff08;DFS&#xff09;注意事项 总结 介绍 因…

Unity中Stack用法以及删除Stack的方法

  • 介绍
  • Stack<T>的API
    • Stack<T> 常用方法
    • 创建和初始化 Stack<T>
    • Push 和 Pop 操作
    • Stack<T>遍历
    • 清空栈
    • 检查栈是否包含某个元素
  • 栈的典型应用场景
    • 撤销操作
    • 深度优先搜索(DFS)
    • 注意事项
  • 总结

介绍

因为之前很少使用Stack这个表,然后在做对象池的时候用了一下然后发现我的对象有时候无法删除,然后这里我分享一下Stack的用法和删除方式。

Stack的API

Stack是先进后厨的集合类,在System.Collections.Generic命名空间中;
通常用在临时存储和特定顺序处理数据,比如撤销操作、递归算法、深度优先搜索等。

Stack 常用方法

Push(T item):将元素添加到栈顶。
Pop():移除并返回栈顶的元素。
Peek():返回栈顶的元素但不移除它。
Clear():清空栈中的所有元素。
Count:获取栈中元素的数量。
Contains(T item):检查栈中是否包含某个元素。

创建和初始化 Stack

// 创建一个 Stack<T>,T 是泛型类型,比如 int、string 或自定义类
Stack<int> stack = new Stack<int>();// 添加元素到栈中
stack.Push(10);
stack.Push(20);
stack.Push(30);// 输出栈中的元素数量
Debug.LogError("栈中元素数量: " + stack.Count); // 输出: 3

Push 和 Pop 操作

Push:将元素添加到栈顶
Pop:移除并返回栈顶的元素(如果栈为空会抛出异常)

Stack<string> stack = new Stack<string>();// 添加元素
stack.Push("Apple");
stack.Push("Banana");
stack.Push("Cherry");// 移除并返回栈顶元素
string topItem = stack.Pop();
Debug.LogError("移除的元素: " + topItem); // 输出: Cherry// 查看栈顶元素(不移除)
string peekItem = stack.Peek();
Debug.LogError("栈顶元素: " + peekItem); // 输出: Banana

Stack遍历

Stack<int> stack = new Stack<int>();
stack.Push(1);
stack.Push(2);
stack.Push(3);// 遍历栈
foreach (int item in stack)
{Debug.LogError(item); // 输出顺序: 3, 2, 1
}

清空栈

使用 Clear() 方法可以清空栈中的所有元素。

stack.Clear();
Debug.LogError("栈中元素数量: " + stack.Count); // 输出: 0

注意:这里如果你T是GameObject对象的话需要额外的操作

Stack<GameObject> noteStack = new Stack<GameObject>();
while (noteStack.Count > 0)
{GameObject note = noteStack.Pop();//是 GameObjectDestroy(note);
}
stack.Clear();
Debug.LogError("栈中元素数量: " + stack.Count); // 输出: 0

检查栈是否包含某个元素

使用 Contains(T item) 方法可以检查栈中是否包含某个元素。

Stack<string> stack = new Stack<string>();
stack.Push("Apple");
stack.Push("Banana");bool containsBanana = stack.Contains("Banana");
Debug.LogError("栈中是否包含 Banana: " + containsBanana); // 输出: True

栈的典型应用场景

撤销操作

Stack<string> actionStack = new Stack<string>();// 用户执行操作
actionStack.Push("Typed 'Hello'");
actionStack.Push("Deleted 'Hello'");// 撤销操作
string lastAction = actionStack.Pop();
Debug.LogError("撤销的操作: " + lastAction); // 输出: Deleted 'Hello'

深度优先搜索(DFS)

Stack<int> dfsStack = new Stack<int>();
dfsStack.Push(1); // 起始节点while (dfsStack.Count > 0)
{int currentNode = dfsStack.Pop();Debug.LogError("访问节点: " + currentNode);// 假设 currentNode 有子节点 2 和 3dfsStack.Push(3);dfsStack.Push(2);
}

注意事项

空栈异常:
如果栈为空时调用 Pop() 或 Peek(),会抛出 InvalidOperationException。因此,在使用这些方法前最好检查栈是否为空。

if (stack.Count > 0)
{int item = stack.Pop();
}

性能:
Stack 的 Push 和 Pop 操作的时间复杂度为 O(1),非常适合需要快速添加和移除元素的场景

总结

感谢大家的支持!

http://www.dtcms.com/wzjs/582477.html

相关文章:

  • 做百度手机网站优化快百度软件开放平台
  • 互联网行业招聘网站免费下载的网页模板
  • 做纪念品网站wordpress免费的企业主题
  • 品牌网站建设特色wordpress新用户管理
  • wordpress 翻墙河南网站建设优化
  • 做设计常用的网站网站建设实训设备
  • 推荐佛山顺德网站建设自媒体平台哪家好
  • 网站为什么功能需求pc28网站开发
  • 德阳有哪些做网站的公司网红店的营销方式
  • 上海网站建设市场分析行业网站推广外包
  • 沧州 网站建设搜狗整站优化
  • 比较好的设计网站有哪些昆山做网站公司有哪些
  • 成都 专业 网站建设网站辅导运营与托管公司
  • 猎头公司网站素材快速赚钱的软件
  • 十堰市建设网站的公司企业管理六大体系
  • 企业网站建设的步骤过程企业咨询合同
  • 网站建设网页设计服务绵阳免费网站建设
  • 阿里云上怎么做网页网站效果图网址大全
  • 青鸟网站开发实例网站的配色技巧
  • 在网站上显示地图上海小程序开发制作
  • 烂网站做竞价行吗做的比较好的冷柜网站有哪些
  • 集约化网站建设的核心可以注册的网站
  • 商城网站建设功能点价格wordpress表单 慢
  • 电商网站网址大全wordpress改页脚
  • 信用中国 网站有那个部门支持建设天津市开发区建设管理局网站
  • django做的购物网站黄岛网站建设
  • 建设网站时 首先要解决两个问题 一是什么免费网站申请注册步骤
  • asp网站源码 生成静态网站建设比较好的多少钱
  • 电子政务网站模版网络营销机构官方网站
  • 网站做数据分析中铁建设集团公司门户