【发布时间】:2018-10-11 14:14:34
【问题描述】:
我需要帮助定义我的 Deque 类型的 STD 容器的最大大小。
在这种情况下,我必须将最大数量的客户端存储在数据结构中的给定子节点中,如下例所示:
typedef struct Cart {
int id;
string clientName;
int numberOfProducts;
double purchaseValue;
} Cart;
我定义了一个常量:
#define MAX_CLIENT 10
我即将定义队列,它必须有最多 10 个客户端:
deque<Cart> BOX_1(MAX_CLIENT);
deque<Cart> BOX_2(MAX_CLIENT);
deque<Cart> BOX_3(MAX_CLIENT);
但似乎结构仍然是动态的,甚至定义了最大数量。
感谢您的贡献。
【问题讨论】:
-
不要用 C 标签来标记纯 C++ 问题。
-
那么如果有人错误地添加了 11 个条目,你希望发生什么?
-
您可以使用 MAX_CLIENT 大小的 std::array 并保持插入的元素数量
-
标准容器没有这样的功能,但是
if (BOX_1.size() == max_size) { /*dont insert element*/} else { /*insert element*/}有什么问题? -
为什么你觉得dequeue应该有一个小的最大尺寸?该文档有
max_size,但这是用于记录不切实际的内存耗尽场景=(总内存-开销)/(元素大小+开销)。
标签: c++ c++11 data-structures