T M*_*T M 9 c++ stack stl vector c++11
我需要复制std::vector
到std::stack
.
遍历向量并推入堆栈只是方法吗?
如果还有另一种方式,从性能的角度来看,更好的选择是什么?
码:
std::stack<A> m_stack;
std::vector<A> m_vec;
for (auto& elem : m_vec)
{
m_stack.push(elem);
}
Run Code Online (Sandbox Code Playgroud)
Ker*_* SB 12
由于堆栈是容器适配器,因此您可以从基础容器创建堆栈:
std::vector<A> m_vec = /* ... */;
std::stack<A, std::vector<A>> m_stack(m_vec);
Run Code Online (Sandbox Code Playgroud)
或者,如果您希望堆栈被deque
支持:
std::stack<A> m_stack(std::deque<A>(m_vec.begin(), m_vec.end()));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3551 次 |
最近记录: |