小编fra*_*gio的帖子

使用std :: array <T,N>会导致代码膨胀吗?

我在一些地方看到std::array了在C++中使用C风格数组的建议,声称它是一种更好,更安全的替代方案,没有开销.看到:

标准容器数组[...]没有超出其容纳元素所需的空间开销,[...].换句话说,它非常像没有问题的内置阵列.(C++ 11 FAQ)

但是,据我所知,作为一个模板容器,程序大小来说会有一个开销,因为它会为每个不同的N生成代码.

假设我的程序std::array在N的各个地方使用了几个不同的整数,这会导致代码膨胀吗?它可以忽略不计吗?

我是否应该为非类型模板参数担心这一点?

c++ templates overhead c++11 stdarray

34
推荐指数
1
解决办法
1666
查看次数

如何为C stdio输入流实现行缓冲?

据我所知,完全缓冲的输入可以通过read为可能大于应用程序所需的数据块发出单个系统调用来实现.但我不明白在没有内核支持的情况下如何将行缓冲应用于输入.我想有人必须读取一个数据块,然后查找换行符,但如果是这样,那么完全缓冲有什么区别?


更具体:

假设我有一个输入流FILE* in.关于stdio库如何从操作系统中检索字节以填充其缓冲区,以下是否有任何区别?

  • 线缓冲: setvbuf(in, NULL, _IOLBF, BUFSIZ)
  • 完全缓冲: setvbuf(in, NULL, _IOFBF, BUFSIZ)

如果是这样,那有什么区别?

unix stdio buffering

4
推荐指数
1
解决办法
881
查看次数

标签 统计

buffering ×1

c++ ×1

c++11 ×1

overhead ×1

stdarray ×1

stdio ×1

templates ×1

unix ×1