質問するログイン新規登録

回答編集履歴

1

m_nPop==0を考慮

2025/09/09 23:39

投稿

int32_t
int32_t

スコア22002

answer CHANGED
@@ -1,7 +1,10 @@
1
1
  ```c++
2
+ std::unique_ptr<IStackElem> self;
3
+ if (m_nPop > 0) {
2
- auto self = std::move(m_Owner.top());
4
+ self = std::move(m_Owner.top());
3
- for (int i = 0; i < self->m_nPop; ++i) self->m_Owner.pop();
5
+ for (int i = 0; i < m_nPop; ++i) m_Owner.pop();
6
+ }
4
- self->m_Owner.push(std::move(self->m_ToBePushed));
7
+ m_Owner.push(std::move(m_ToBePushed));
5
8
  ```
6
9
  のようなことが可能だと思います。staticメンバのアプローチより少しコードがシンプルかも、という程度ですが。
7
10