NPS*_*NPS 5 c++ sizeof stdarray
这是获取std::array::data()返回内容大小的最简单/最短的方法吗?
arr.size() * sizeof(arr.value_type)
Run Code Online (Sandbox Code Playgroud)
编辑:我的问题不准确."内存中的大小"是指数组中包含的所有元素(本身)的大小,因此,如果它们是指向结构的指针,我只需要指针的大小,而不是指向的结构.我也不想包含实现的任何可能开销的大小std::arr.只是数组元素.
有人建议sizeof(arr).这个:stof :: array <char,N>的sizeof是多少?乞求不同意.虽然它似乎在我的机器上工作,但我想知道标准保证什么.
您可以sizeof直接在您的std::array实例上使用运算符:
sizeof(arr)
Run Code Online (Sandbox Code Playgroud)
例:
struct foo
{
int a;
char b;
};
int main()
{
std::array<foo, 10> a;
static_assert(sizeof(foo) == 8);
static_assert(sizeof(a) == 80);
}
Run Code Online (Sandbox Code Playgroud)
std::array是一个封装固定大小数组的容器.此容器是一种聚合类型,其语义与
struct将C样式数组T[N]作为唯一的非静态数据成员相同.
由于没有人发布过比我的第一个猜测更好的内容,并且sizeof(arr)很可能不能保证不包含任何可能的附加字段的大小,std::array's因此我选择它作为接受的答案。
arr.size() * sizeof(arr.value_type)
Run Code Online (Sandbox Code Playgroud)
如果有人想出更好的办法,我很乐意接受他们的答案。
| 归档时间: |
|
| 查看次数: |
421 次 |
| 最近记录: |