当前位置: 首页 > 知识库问答 >
问题:

stackstack=otherStack创建指向otherStack的指针?

姜明贤
2023-03-14

我目前正在进行一个对象结构练习,在这个练习中我实现了一个简单的Twitter界面。我有一个TwitterAccount对象和一个Tweet对象。TwitterAccount对象有一个包含所有tweet的堆栈。在我的getTweet(index)方法中,我希望用getTweet(1)返回最新的tweet,用getTweet(2)...等等。

我通过创建一个临时tweet-stack,从临时stack中弹出索引-1条tweet,然后返回下一条。我的问题是,原来的tweets堆栈也有它的元素弹出。我在创建临时堆栈时是否创建了指向tweets堆栈的指针?

Stack<Tweets> tweets;

(...)

public Tweet getTweet(int index) {

    Stack<Tweet> tempTweets = tweets;
    for (int i = 0; i < index-1; i++) 
        tempTweets.pop();

    return tempTweets.pop();

}

共有1个答案

颛孙智勇
2023-03-14

是的,在这种情况下,你只是在看同一个物体。这里没有复制。

创建堆栈副本的最简单方法是克隆它。

Stack<Tweet> tempTweets = (Stack<Tweet>) tweets.clone();

请考虑改用deque,因为stack是垃圾

 类似资料:
  • 在下面给出的代码中,我声明了一个指向int的指针,我们都知道memcpy返回一个指向目标字符串的空指针,所以如果ptr是指向int的指针,那么为什么printf(“%s”,ptr);是完全有效的,ptr毕竟不是指向char的指针。

  • 问题内容: 如何创建一个链接到? 假设已在下方建立,而您目前在中。当您这样做时,您将直接转到。 问题答案: 符号或软链接(文件或目录,更灵活,可自我记录) 硬链接(仅文件,灵活性较差且无法自我记录) 详细信息:man ln 就像一个新目录。要避免出现 “不是目录:没有这样的文件或目录” 错误,例如@trlkly注释,请在目标中使用相对路径,即使用示例:

  • 指针可以指向一份普通类型的数据,例如 int、double、char 等,也可以指向一份指针类型的数据,例如 int *、double *、char * 等。 如果一个指针指向的是另外一个指针,我们就称它为 二级指针,或者 指向指针的指针。 假设有一个 int 类型的变量 a,p1是指向 a 的指针变量,p2 又是指向 p1 的指针变量,它们的关系如下图所示: 将这种关系转换为C语言代码: 指针变

  • selector: 'app-root', template: ` {{item}} </card> })

  • View Example 我们有礼貌,所以不是仅仅将用户发送到新页面,而是通过创建属性指令并将其附加到按钮,来询问他们是否确定跳转。 selector: `[appConfirm]` }) export class ConfirmDirective { @HostListener('click', ['$event']) confirmFirst(event: Event) {

  • 问题内容: 将一些地图定义为: 我想要一个指向地图地址的变量(不要复制所有变量)。我尝试使用: 但在使用时,它显示 内部编译器错误:无类型的var,初始化:new 如何获得? 编辑 该错误由另一个问题显示。 问题答案: 映射是引用类型,因此它们总是通过引用传递。您不需要指针。转到文档