如果我正在创建一个需要填充缓冲区的方法(例如,用于 的包装器fread
),并且在某些情况下(在运行时确定)它可以很好地猜测所需的缓冲区大小,我应该将什么传递给这个方法为了利用这个机会,同时仍然允许任何合理的缓冲区并且不需要用户多次调用?
我想使用一个
insert_iterator
,但我不能告诉它保留一定数量的内存。另一方面,如果我将容器作为模板参数传递,我会遇到麻烦,因为容器没有标准接口!(例如
vector
,并且string
有,reserve
但又没有。或者容器可能没有——我不相信我已经看到这是强制性的。等等)deque
list
push_back
那么在这样的情况下,什么是合适的做法呢?