如何在每次循环中都定义一个静态变量?(C++)

我在写一个功能如下图的程序:图片说明
由于这个程序要能循环执行,这导致了一个问题:
在第一次循环中,我选择功能1,即创建一个表(比如int型),代码是

 static vec<int> v; //用static是因为我接下来的循环还要对这个表进行操作

在第二次循环中,我选择功能2,即销毁这个表,代码是

 v.~vec();  //即调用析构函数

那么余下的 循环就不能进行了。。。
比如我在第三次循环中选择功能1创建表,可此时不会再运行static vec v;因为 static变量只定义一次,这样就无法再创建表。
所以我到底该怎样写这段代码呢?多谢各位啦~

5个回答

销毁的话按你的意思是所有空间都没了 但是静态static这里有冲突
为什么要有静态?
静态static是为了延长变量的作用时间,为了它的较长的生命周期

u013427969
ClouddRenn 回复霍天青: 之后循环要用的话 也不一定必须要用static限制 可以使用全局变量啊 作用范围、时间一样
4 年多之前 回复
zay999abc
霍天青 你好。我的问题可能没有阐述清楚。我发的功能菜单你也看到了,源程序是每次循环都选择一个功能。也就是说,我创建的表在之后的循环中还是要用的,所以声明为static,而不是临时变量。但这样就产生问题。。。
4 年多之前 回复

你把它想得太过复杂了,写个这么小的链表,你也能用到vector? 真够⑥的,,归根结底是你的逻辑出问题了...

如果是static,就不要频繁操作它,创建一次,直到你退出程序再释放

个人见解:除非必要,最好少用static,这东西创建一次之后,就一直存在,直到退出程序

可以使用swap()交换一下

zay999abc
霍天青 不好意思,我竟听不懂。
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐