- 深入浅出:图解Vue 3生命周期的全流程
秋水为渡
vue.js前端
在Vue开发中,生命周期是一个核心概念,它描述了Vue实例从创建到销毁的完整过程。理解生命周期不仅有助于编写更高效的代码,还能避免许多潜在问题。本文将详细解析Vue3的生命周期,并结合OptionsAPI与CompositionAPI的差异,探讨每个阶段的实际应用场景。一、生命周期总览:从“诞生”到“消亡”Vue的生命周期可以分为四个核心阶段:初始化阶段(Initialization)挂载阶段(M
- Linux dpkg 命令基本解释及示例
xinhh
Linux相关linux
Linux中的dpkg命令及示例一、dpkg的基本介绍dpkg的基本语法格式参数解释:常用dpkg命令选项二、dpkg命令用法示例安装包删除包清除包列出已安装的软件包显示有关包的信息按文件名搜索包清除包验证包完整性参考链接:原文一、dpkg的基本介绍dpkg的基本语法格式dpkg命令的基本语法是-dpkg[options]参数解释:options-用于修改dpkg命令行为的可选参数。action-
- Linux基础命令export详解
penny_tcf
linux运维linux运维服务器
export是一个在Linux和Unix系统中使用的命令,主要用于设置和导出环境变量,使得子进程能够继承这些变量。通过使用export,你可以将自定义的变量或修改过的变量设置为环境变量,以便在当前shell会话及其子进程中使用。基本用法export[OPTION][NAME[=VALUE]...]常用选项详解export命令通常没有复杂的参数,主要用来声明和管理环境变量。以下是一些常用的上下文说明
- 【WRF理论第十六期】静态地理数据的插值处理(interp_option)
WW、forever
WRF模型原理及应用WPSWRF
静态地理数据的插值处理(interp_option)一、插值方法的设置方式二、常见插值方法类型及原理最近邻插值法(nearest_neighbor)四点双线性插值(four_pt)三、不同静态数据推荐插值方法(示例)参考在WRF(WeatherResearchandForecasting)模式中,静态地理数据的处理是通过geogrid.exe程序完成的,它从静态地理数据集中读取地形、高程、土地利用
- 【C++】C++17结构化绑定、std::optional、std::variant、std::any
宝贝儿好
C++c++开发语言c语言青少年编程
二十二、C++17中的结构化绑定、std::optional、std::variant、std::any本部分是一个小系列,介绍C++17中新引入的、用来解决各种不同返回情况的、标准库新组件。1、C++的结构化绑定结构化绑定structuredbindings是C++17中引入的一项特性,它允许开发者方便地从元组、结构体或数组中解包数据到单独的变量。是在元组(tuple)和对组(pairs)的基础
- vxe-table中vxe-grid中的合并单元格(合并行、列)
大个个个个个儿
vxe-tablevuevxe-grid前端javascript开发语言
效果图(我所用到的是合并行):根据personName人员名称相同合并行//列表表格数据constgridOptions=ref({data:[],align:'center',loading:false,border:true,height:'300px',columns:[{type:'seq',width:50},{title:'人员名称',field:'personName'},{titl
- Docker命令
laimaxgg
dockerubuntulinux运维服务器
Docker命令1.基础命令dockerlogin登录到一个Docker镜像仓库,如果未指定镜像仓库地址,默认为官方仓库DockerHub。dockerlogin[options][server]选项:-u:登录的用户名。**-p:**登录的密码(不建议使用)。这两个选项是用于在命令行中提前指定登录的账号和密码,即使不提前输入,后续在login的中途也要输入。且使用-p选项提前输入密码,会导致密码
- Asp.NET Core WebApi IOptions<T>详解
她说彩礼65万
asp.net后端
IOptions是ASP.NETCore中用于访问配置数据的一个接口,它属于Microsoft.Extensions.Options命名空间。通过IOptions,你可以将配置绑定到强类型的类中,并在应用程序的不同部分中注入和使用这些配置。这种方式不仅使得代码更加整洁,也增强了类型安全性和可测试性。使用IOptions的基本步骤定义配置模型:首先,你需要定义一个与配置文件中的结构相匹配的类。绑定配
- chrome extension开发框架WXT之WXT Storage api解析
Spider Cat 蜘蛛猫
前端chrome扩展
以下是对WxtStorage接口及其相关类型中各方法的参数、返回值、用法和适用场景的详细解释:getItem方法getItem(key:StorageItemKey,opts:GetItemOptions&{fallback:TValue}):Promise;getItem(key:StorageItemKey,opts?:GetItemOptions):Promise;参数:key:类型为Sto
- 数据库SQL:视图VIEW
Karon_NeverAlone
数据库系统数据库sqldatabase
目录定义视图注意事项建立视图视图有多个种类删除视图查询视图两种方法:更新视图视图的作用两个思考题定义视图CREATEVIEW[视图的列名字们]AS[WITHCHECKOPTION];这里的子查询是一个select的语句,查询出来的结果,一列列对应视图的一列列,有的系统不能在此处的查询语句中使用groupby和distinct注意事项先举个例子方便下面注意事项的说明例一CREATEVIEWis_st
- ECharts中处理大量数据时,使用dataZoom现滚动查看
貂蝉空大
vueJavaScriptechartsecharts前端javascript
1.基本用法要启用数据区域缩放功能,在图表配置项中加入dataZoom属性,并设置其类型为slider或inside。option={//...其他配置...dataZoom:[{type:'slider',//滑动条形式的数据区域选择器start:0,//数据窗口范围的起始百分比end:50//数据窗口范围的结束百分比},{type:'inside',//内置型数据区域选择器,无需额外空间sta
- Echarts + VUE 实现折线图、饼图、柱状图和地图
A小金刚
前端echartsvue.jsjavascript
折线图组件定义jsconstdom=this.$refs.zxtChart;this.zxtChart=this.$echarts.init(dom);this.zxtChart.setOption(this.zxtOption);option参数设置{//标题title:{text:'组织碳月度排放',top:'0%',left:'left'},//提示工具tooltip:{trigger:'a
- vue+echarts实现折线图、柱状图、饼图大屏纯前端
香妃_C
echartsechartsvue.js前端
代码:import*asechartsfrom'echarts';exportdefault{name:"datapic",mounted(){this.drawLine();this.drawZhu();this.drawBing();},methods:{drawBing(){letmyChart=echarts.init(this.$refs.myChart3);varoption;opti
- AntDesign下,Select内嵌Menu标签,做一个多选下拉框,既可以搜索,还可以选择下拉项
蓉妹妹
react.js前端
话不多说,直接上效果和代码效果图一:效果图二:renderAddStyleOption=(item:any)=>{const{value}=this.props;const{currentSelectedOptionIds,currentStyleId}=this.state;conststyleSettings=value?.styleSettings;constnewStyleSettings
- 取消echarts地图选中后黄色高亮
Geoffwo
vueJavaScriptcss样式echarts前端javascript
仅作个人学习使用//关键修改点2:禁用选中高亮select:{disabled:true//完全禁用选中效果},exportdefault(data,_this)=>{constmapName=data.mapName;constmapList=data.mapList||[{name:'庆云县',value:88},{name:'平原县',value:12},];letoptions={tool
- 鸿蒙NEXT开发文件操作相关工具类(ArkTs)
鸿蒙布道师
鸿蒙NEXT开发工具箱华为huawei鸿蒙系统harmonyosArkTsandroidios
importfileUrifrom'@ohos.file.fileuri';importfs,{ListFileOptions,ReadOptions,ReadTextOptions,WriteOptions}from'@ohos.file.fs';import{StrUtil}from'./StrUtil';import{fileShare}from'@kit.CoreFileKit';impo
- 不要将 Echarts 实例保存到 vue 的响应式数据上,会导致 tooltip 失效!!!
vue.jsecharts
echarts初始化echarts.init(DOMOBJ)会返回一个echarts实例对象,用一个变量接住实例对象就可以生成图表了,例如:()=>{letchartDom=document.getElementById('flg')lettimeObj=echarts.init(chartDom);timeObj.hideLoading()timeObj.setOption(dataObj);}
- docker的run命令 笔记250406
kfepiza
虚拟机容器docker笔记容器
docker的run命令笔记250406Docker的run命令用于创建并启动一个新的容器。它是Docker中最常用的命令之一,基本语法为:dockerrun[OPTIONS]IMAGE[COMMAND][ARG...]常用选项(OPTIONS)参数说明-d或--detach后台运行容器(守护态)。-it以交互模式运行容器(通常与bash结合使用,如-itubuntubash)。--name为容器
- 鸿蒙NEXT开发全局异常捕获与崩溃日志收集工具类(ArkTs)
鸿蒙布道师
鸿蒙NEXT开发工具箱华为huawei鸿蒙系统harmonyosArkTsandroidios
importerrorManagerfrom'@ohos.app.ability.errorManager';import{BusinessError}from'@kit.BasicServicesKit';import{WriteOptions}from'@kit.CoreFileKit';import{appRecovery,common,Want}from'@kit.AbilityKit';
- xen编译时 Traceback (most recent call last):
sdulibh
linux编程基础虚拟机
Traceback(mostrecentcalllast):File"C:\libsvm2.88\tools\grid.py",line362,inmain()File"C:\libsvm2.88\tools\grid.py",line284,inmainprocess_options()File"C:\libsvm2.88\tools\grid.py",line91,inprocess_opti
- vue专题1---vue中绑定的自定义事件对应的事件处理函数,如何在传递参数的同时接收事件对象 event
上趣工作室
vue3.xvue.jsjavascript前端
在Vue中,如果想在事件处理函数中传递参数,可以使用箭头函数或者v-bind来实现。下面是两种常见的方法:方法1:使用箭头函数你可以直接在事件监听中使用箭头函数来传递参数,同时接收事件对象e。page_change(e,parameter)">Option1Option2exportdefault{methods:{page_change(e,parameter){console.log('Eve
- CentOS禁用nouveau驱动
忧郁蓝调26
运维centoslinux运维nouveaunvidia驱动
1、验证nouveau是否在运行lsmod|grepnouveau如果命令返回结果,说明nouveau驱动正在运行。2、编辑黑名单文件通过编辑黑名单配置文件来禁用nouveau驱动,这样在系统启动时不会加载它。vi/etc/modprobe.d/blacklist-nouveau.conf修改以下内容blacklistnouveauoptionsnouveaumodeset=03、重新生成初始化R
- vue3的一些新特性
爱分享的程序员
前端
Vue3是Vue.js框架的重大升级,带来了许多新特性和性能优化。以下是Vue3的主要新特性详解:一、CompositionAPIVue3引入了CompositionAPI,旨在解决OptionsAPI在复杂组件中逻辑复用和代码组织的问题。通过setup()函数和响应式API,开发者可以更灵活地组合逻辑。1.setup()函数新的组件选项,在组件初始化阶段执行。替代了Vue2中的data、meth
- Vue项目 bug 解决
致微
Vuebug解决vue.jsbug前端
Vue2项目部署失败从gitee上拉下一个前端项目,然后npminstall,报错如下:解决办法:从npm切换到cnpm:npminstall-gcnpm执行命令exportNODE_OPTIONS=--openssl-legacy-provider下载依赖:cnpminstall启动项目:npmrundev
- Burp Suite如何配置证书
菌菌的快乐生活
网络安全
配置BurpSuite的证书是为了让浏览器信任Burp的代理,从而实现HTTPS流量的抓包和分析。以下是详细的配置步骤,适用于BurpSuite社区版和专业版:✅一、设置BurpSuite的代理端口打开BurpSuite→Proxy→Options查看ProxyListeners,确认是否已监听127.0.0.1:8080如果没有,可以点击Add添加一个监听地址(默认就是127.0.0.1:808
- IDEA快速入门
石头dhf
idea
IDEA快速入门loadingIntelliJIDEA像Eclipse一样打开多个项目。https://blog.csdn.net/zht666/article/details/47831893ntelliJIDEA在Mac下格式化代码快捷键:Command+Option+LOption+shift+c打开最近修改的文件command+Y删除行⌘⌫删除当前行或选定的块的行command+optio
- 记录错误:找不到符号
沙漠蓝色披头
androidkotlin
具体表现是在一个java类中,想引用定义的kotlin类,报错:找不到符号,经过排查:是在build.gradle.kts中缺少依赖导致:alias(libs.plugins.kotlin.android)同时需要:kotlinOptions{jvmTarget="1.8"}需要在libs.versions.toml中定义具体的值之后可以正常编译不报错
- Chapter 16: Writing CMake Presets_《Modern CMake for C++》_Notes
lianghu666
C/C++c++软件构建笔记
Chapter16:WritingCMakePresets1.PresetTypesandStructureCMakesupports6presettypeswithdedicatedJSONschemas:ConfigurePresets(configurePresets)DefineCMakeconfigurationoptions(generator,toolchain,variables)
- mac命令操作
石头dhf
MAC
mac命令操作快速删除一行:control+u剪切文件:步骤1、先进行Command+c进行选择复制文件,2、进行command+option+v进行移动文件,如果command+v是进行复制文件。command+control+D三个键即可屏幕取词进行翻译mac中可以使用快捷方式command+shift+.来查看隐藏的文件,再次按下恢复隐藏快捷键Command+Q退出当前窗口。Alt+Comm
- 蓝桥杯 web 学海无涯(axios、ecahrts)版本二
Jasmin Tin Wei
蓝桥杯前端蓝桥杯
答案://TODO:待补充代码//初始化图表的数据,设置周视图的初始数据option.series[0].data=[180,274,253,324,277,240,332,378,101];//周数据(每周的总学习时长)option.xAxis.data=["2月第1周","2月第2周","2月第3周","2月第4周","3月第1周","3月第2周","3月第3周","3月第4周","3月第5周
- JAVA基础
灵静志远
位运算加载Date字符串池覆盖
一、类的初始化顺序
1 (静态变量,静态代码块)-->(变量,初始化块)--> 构造器
同一括号里的,根据它们在程序中的顺序来决定。上面所述是同一类中。如果是继承的情况,那就在父类到子类交替初始化。
二、String
1 String a = "abc";
JAVA虚拟机首先在字符串池中查找是否已经存在了值为"abc"的对象,根
- keepalived实现redis主从高可用
bylijinnan
redis
方案说明
两台机器(称为A和B),以统一的VIP对外提供服务
1.正常情况下,A和B都启动,B会把A的数据同步过来(B is slave of A)
2.当A挂了后,VIP漂移到B;B的keepalived 通知redis 执行:slaveof no one,由B提供服务
3.当A起来后,VIP不切换,仍在B上面;而A的keepalived 通知redis 执行slaveof B,开始
- java文件操作大全
0624chenhong
java
最近在博客园看到一篇比较全面的文件操作文章,转过来留着。
http://www.cnblogs.com/zhuocheng/archive/2011/12/12/2285290.html
转自http://blog.sina.com.cn/s/blog_4a9f789a0100ik3p.html
一.获得控制台用户输入的信息
&nbs
- android学习任务
不懂事的小屁孩
工作
任务
完成情况 搞清楚带箭头的pupupwindows和不带的使用 已完成 熟练使用pupupwindows和alertdialog,并搞清楚两者的区别 已完成 熟练使用android的线程handler,并敲示例代码 进行中 了解游戏2048的流程,并完成其代码工作 进行中-差几个actionbar 研究一下android的动画效果,写一个实例 已完成 复习fragem
- zoom.js
换个号韩国红果果
oom
它的基于bootstrap 的
https://raw.github.com/twbs/bootstrap/master/js/transition.js transition.js模块引用顺序
<link rel="stylesheet" href="style/zoom.css">
<script src=&q
- 详解Oracle云操作系统Solaris 11.2
蓝儿唯美
Solaris
当Oracle发布Solaris 11时,它将自己的操作系统称为第一个面向云的操作系统。Oracle在发布Solaris 11.2时继续它以云为中心的基调。但是,这些说法没有告诉我们为什么Solaris是配得上云的。幸好,我们不需要等太久。Solaris11.2有4个重要的技术可以在一个有效的云实现中发挥重要作用:OpenStack、内核域、统一存档(UA)和弹性虚拟交换(EVS)。
- spring学习——springmvc(一)
a-john
springMVC
Spring MVC基于模型-视图-控制器(Model-View-Controller,MVC)实现,能够帮助我们构建像Spring框架那样灵活和松耦合的Web应用程序。
1,跟踪Spring MVC的请求
请求的第一站是Spring的DispatcherServlet。与大多数基于Java的Web框架一样,Spring MVC所有的请求都会通过一个前端控制器Servlet。前
- hdu4342 History repeat itself-------多校联合五
aijuans
数论
水题就不多说什么了。
#include<iostream>#include<cstdlib>#include<stdio.h>#define ll __int64using namespace std;int main(){ int t; ll n; scanf("%d",&t); while(t--)
- EJB和javabean的区别
asia007
beanejb
EJB不是一般的JavaBean,EJB是企业级JavaBean,EJB一共分为3种,实体Bean,消息Bean,会话Bean,书写EJB是需要遵循一定的规范的,具体规范你可以参考相关的资料.另外,要运行EJB,你需要相应的EJB容器,比如Weblogic,Jboss等,而JavaBean不需要,只需要安装Tomcat就可以了
1.EJB用于服务端应用开发, 而JavaBeans
- Struts的action和Result总结
百合不是茶
strutsAction配置Result配置
一:Action的配置详解:
下面是一个Struts中一个空的Struts.xml的配置文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
&quo
- 如何带好自已的团队
bijian1013
项目管理团队管理团队
在网上看到博客"
怎么才能让团队成员好好干活"的评论,觉得写的比较好。 原文如下: 我做团队管理有几年了吧,我和你分享一下我认为带好团队的几点:
1.诚信
对团队内成员,无论是技术研究、交流、问题探讨,要尽可能的保持一种诚信的态度,用心去做好,你的团队会感觉得到。 2.努力提
- Java代码混淆工具
sunjing
ProGuard
Open Source Obfuscators
ProGuard
http://java-source.net/open-source/obfuscators/proguardProGuard is a free Java class file shrinker and obfuscator. It can detect and remove unused classes, fields, m
- 【Redis三】基于Redis sentinel的自动failover主从复制
bit1129
redis
在第二篇中使用2.8.17搭建了主从复制,但是它存在Master单点问题,为了解决这个问题,Redis从2.6开始引入sentinel,用于监控和管理Redis的主从复制环境,进行自动failover,即Master挂了后,sentinel自动从从服务器选出一个Master使主从复制集群仍然可以工作,如果Master醒来再次加入集群,只能以从服务器的形式工作。
什么是Sentine
- 使用代理实现Hibernate Dao层自动事务
白糖_
DAOspringAOP框架Hibernate
都说spring利用AOP实现自动事务处理机制非常好,但在只有hibernate这个框架情况下,我们开启session、管理事务就往往很麻烦。
public void save(Object obj){
Session session = this.getSession();
Transaction tran = session.beginTransaction();
try
- maven3实战读书笔记
braveCS
maven3
Maven简介
是什么?
Is a software project management and comprehension tool.项目管理工具
是基于POM概念(工程对象模型)
[设计重复、编码重复、文档重复、构建重复,maven最大化消除了构建的重复]
[与XP:简单、交流与反馈;测试驱动开发、十分钟构建、持续集成、富有信息的工作区]
功能:
- 编程之美-子数组的最大乘积
bylijinnan
编程之美
public class MaxProduct {
/**
* 编程之美 子数组的最大乘积
* 题目: 给定一个长度为N的整数数组,只允许使用乘法,不能用除法,计算任意N-1个数的组合中乘积中最大的一组,并写出算法的时间复杂度。
* 以下程序对应书上两种方法,求得“乘积中最大的一组”的乘积——都是有溢出的可能的。
* 但按题目的意思,是要求得这个子数组,而不
- 读书笔记-2
chengxuyuancsdn
读书笔记
1、反射
2、oracle年-月-日 时-分-秒
3、oracle创建有参、无参函数
4、oracle行转列
5、Struts2拦截器
6、Filter过滤器(web.xml)
1、反射
(1)检查类的结构
在java.lang.reflect包里有3个类Field,Method,Constructor分别用于描述类的域、方法和构造器。
2、oracle年月日时分秒
s
- [求学与房地产]慎重选择IT培训学校
comsci
it
关于培训学校的教学和教师的问题,我们就不讨论了,我主要关心的是这个问题
培训学校的教学楼和宿舍的环境和稳定性问题
我们大家都知道,房子是一个比较昂贵的东西,特别是那种能够当教室的房子...
&nb
- RMAN配置中通道(CHANNEL)相关参数 PARALLELISM 、FILESPERSET的关系
daizj
oraclermanfilespersetPARALLELISM
RMAN配置中通道(CHANNEL)相关参数 PARALLELISM 、FILESPERSET的关系 转
PARALLELISM ---
我们还可以通过parallelism参数来指定同时"自动"创建多少个通道:
RMAN > configure device type disk parallelism 3 ;
表示启动三个通道,可以加快备份恢复的速度。
- 简单排序:冒泡排序
dieslrae
冒泡排序
public void bubbleSort(int[] array){
for(int i=1;i<array.length;i++){
for(int k=0;k<array.length-i;k++){
if(array[k] > array[k+1]){
- 初二上学期难记单词三
dcj3sjt126com
sciet
concert 音乐会
tonight 今晚
famous 有名的;著名的
song 歌曲
thousand 千
accident 事故;灾难
careless 粗心的,大意的
break 折断;断裂;破碎
heart 心(脏)
happen 偶尔发生,碰巧
tourist 旅游者;观光者
science (自然)科学
marry 结婚
subject 题目;
- I.安装Memcahce 1. 安装依赖包libevent Memcache需要安装libevent,所以安装前可能需要执行 Shell代码 收藏代码
dcj3sjt126com
redis
wget http://download.redis.io/redis-stable.tar.gz
tar xvzf redis-stable.tar.gz
cd redis-stable
make
前面3步应该没有问题,主要的问题是执行make的时候,出现了异常。
异常一:
make[2]: cc: Command not found
异常原因:没有安装g
- 并发容器
shuizhaosi888
并发容器
通过并发容器来改善同步容器的性能,同步容器将所有对容器状态的访问都串行化,来实现线程安全,这种方式严重降低并发性,当多个线程访问时,吞吐量严重降低。
并发容器ConcurrentHashMap
替代同步基于散列的Map,通过Lock控制。
&nb
- Spring Security(12)——Remember-Me功能
234390216
Spring SecurityRemember Me记住我
Remember-Me功能
目录
1.1 概述
1.2 基于简单加密token的方法
1.3 基于持久化token的方法
1.4 Remember-Me相关接口和实现
- 位运算
焦志广
位运算
一、位运算符C语言提供了六种位运算符:
& 按位与
| 按位或
^ 按位异或
~ 取反
<< 左移
>> 右移
1. 按位与运算 按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。
例如:9&am
- nodejs 数据库连接 mongodb mysql
liguangsong
mongodbmysqlnode数据库连接
1.mysql 连接
package.json中dependencies加入
"mysql":"~2.7.0"
执行 npm install
在config 下创建文件 database.js
- java动态编译
olive6615
javaHotSpotjvm动态编译
在HotSpot虚拟机中,有两个技术是至关重要的,即动态编译(Dynamic compilation)和Profiling。
HotSpot是如何动态编译Javad的bytecode呢?Java bytecode是以解释方式被load到虚拟机的。HotSpot里有一个运行监视器,即Profile Monitor,专门监视
- Storm0.9.5的集群部署配置优化
roadrunners
优化storm.yaml
nimbus结点配置(storm.yaml)信息:
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional inf
- 101个MySQL 的调节和优化的提示
tomcat_oracle
mysql
1. 拥有足够的物理内存来把整个InnoDB文件加载到内存中——在内存中访问文件时的速度要比在硬盘中访问时快的多。 2. 不惜一切代价避免使用Swap交换分区 – 交换时是从硬盘读取的,它的速度很慢。 3. 使用电池供电的RAM(注:RAM即随机存储器)。 4. 使用高级的RAID(注:Redundant Arrays of Inexpensive Disks,即磁盘阵列
- zoj 3829 Known Notation(贪心)
阿尔萨斯
ZOJ
题目链接:zoj 3829 Known Notation
题目大意:给定一个不完整的后缀表达式,要求有2种不同操作,用尽量少的操作使得表达式完整。
解题思路:贪心,数字的个数要要保证比∗的个数多1,不够的话优先补在开头是最优的。然后遍历一遍字符串,碰到数字+1,碰到∗-1,保证数字的个数大于等1,如果不够减的话,可以和最后面的一个数字交换位置(用栈维护十分方便),因为添加和交换代价都是1