通常,当我们使用堆栈时,我们会这样做....
stack<int>st;
st.push(1);
st.push(2);
st.push(3);
cout<<st.top<<"\n"
但是我的问题是当我们使用 struct 而不是 int/char 类型变量时如何推送和访问数据?例如...
struct st
{
int index, value;
};
int main()
{
stack<st>STACK;
/*
code
*/
}
现在,在这里我如何将元素推入堆栈并访问它们?
您可以std::stack
通过使用聚合初始化或向您的结构或std::stack::emplace
.
通过使用构造函数:
struct st
{
st(int _index, int _value) : index(_index), value(_value) {}
int index, value;
};
std::stack<st> s;
s.push(st(10, 20));
通过使用聚合初始化:
std::stack<int> s;
s.push({10, 20});
要访问该元素,只需调用std::stack::top()
.
st top = s.top();
或通过使用 C++17结构化绑定声明:
auto [index, value] = s.top();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句