a的大小是否有限制std::stack?
我使用a std::stack<std::pair<int,std::string>>作为我的堆栈,当条目数超过大约100万时,我收到运行时错误.
这是由于对大小的限制std::stack吗?
std::stack是一个容器适配器.它只是一个其他容器的前端,使它看起来像一个堆栈.考虑到std::vector可以像一个堆栈来处理,如果你更换名称push与push_back和名字pop用pop_back.因此,任何尺寸限制或类似限制将是背衬容器的结果,而不是std::stack.
std::stackis std::deque(N3376 23.6.5.2 [stack.defn])的默认后备容器.该标准要求std::deque提供一个max_size成员函数(N3376 23.3.3.1 [deque.overview]/2),它告诉您std::deque根据实现限制可以容纳的最大元素数.这通常是类似的std::numeric_limits<std::deque<t>::size_type>::max().
但是,您更有可能遇到机器内存限制,或者在应用程序的其他地方出现一些错误导致运行时错误.
| 归档时间: |
|
| 查看次数: |
2063 次 |
| 最近记录: |