gpt4 book ai didi

c++ - STL 堆栈对象的大小限制

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:47:00 26 4
gpt4 key购买 nike

std::stack 的大小有限制吗? ?

我正在使用 std::stack<std::pair<int,std::string>>作为我的堆栈,当条目数超过大约 100 万时,我会收到运行时错误。

这是由于 std::stack 的大小限制造成的吗? ?

最佳答案

std::stack是一个容器适配器。它只是一些其他容器的前端,这使它看起来像一个堆栈。考虑一下 std::vector如果替换名称 push 可以像堆栈一样对待与 push_back和名字poppop_back .因此,任何大小限制或类似内容都将是后备容器的结果,而不是 std::stack。 .

std::stack 的默认支持容器是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()。 .

但是,更有可能是您遇到了机器内存限制,或者您的应用程序中其他地方存在一些错误导致运行时错误。

关于c++ - STL 堆栈对象的大小限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13663481/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com