如何在一堆中得到一个特定的值?(c++)

How to get a particular value in a pile ? (C++)

本文关键字:一个 c++ 一堆      更新时间:2023-10-16

我想知道如何在一堆(/stack ?对不起,我是法国人。我需要解栈堆栈的顶点,把它设为int,然后得到[summit-int]值,这样我就可以把它设为新的顶点。

谢谢你的帮助:)

(这里有一个例子可能会更清楚:

例如,对于一个堆栈[1 2 3 4 5 2](其中顶点在右边),该指令将解除堆栈i <- 2,它将转换堆栈[1 2 3 4 5],然后复制值3,它从0开始,从右数第二个,然后堆叠它,然后得到最终堆栈[1 2 3 4 5 3]。

尝试std::vector<int>。它似乎是为你正在做的事情精心设计的。使用back()获得堆栈顶部的值,然后使用pop_back()将其移除。使用stack[n]获取stack的第n个元素的副本

如果要经常通过索引访问数据结构,那么似乎不是最好的。

你可以做的是如果,可能只有如果,你正在使用Visual Studio和Microsoft c++实现,你需要偶尔这样做,你可以告诉std::stack使用向量作为容器,而不是默认的std::deque,并使用_Get_container()来访问它。std::vector允许索引访问。下面的例子将打印堆栈中的第一个元素。

#include <string>
#include <stack>
#include <iostream>
#include <vector>
int main(void) {
    std::stack<std::string, std::vector<std::string> >stringStack;
    stringStack.push("Hello");
    stringStack.push("World");
    std::cout << stringStack._Get_container()[0];
}

Output: Hello