我试图窥视我的堆栈结构的顶部元素来改变它的属性:
stack<mat> stk;
...
mat parent = stk.top();
parent.cap -= n;
Run Code Online (Sandbox Code Playgroud)
但这并没有改变堆栈顶部的值.我认为这只是改变副本的价值.相反,我必须做这样的事情(我不确定它是否正确,但它有效):
stack<mat> stk;
...
mat * parent = &stk.top();
parent->cap -= n;
Run Code Online (Sandbox Code Playgroud)
我在引用中读到了stk.top()返回对栈顶部元素的引用,那么为什么我的第一个例子不起作用呢?
在这里,您将ref复制到一个新mat对象:
mat parent = stk.top();
Run Code Online (Sandbox Code Playgroud)
如果您想处理引用,请使用如下引用:
mat& parent = stk.top();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |