相关疑难解决方法(0)

为什么在C++ 14中运行时大小的数组和std :: dynarray?

草案C++ 14包括运行时大小的数组和std::dynarray容器.从我所知道的,两者之间的唯一真正的区别在于std::dynarray有一个STL接口(例如begin,end,size,等),同时运行时大小的数组没有.那么为什么C++ 14需要它们呢?

我知道运行时大小的数组是核心语言的std::dynarray一部分,同时也是标准库的一部分,但是该提议std::dynarray清楚地表明作者希望编译器在许多情况下能够提供特殊支持,std::dynarray以便它可以高效尽可能地,即,与运行时大小的数组一样高效.因此,语言/库的区别似乎有点人为.

那么,为什么C++ 14需要两个运行时大小的数组std::dynarray呢?并且鉴于它std::dynarray具有更丰富的(STLified)接口,为什么不只是删除运行时大小的数组,假设std::dynarray可以以相同的运行时效率实现?

澄清

当我谈到"运行时大小的数组"时,我指的是N3639中描述的新的C++ 14核心语言特性,而不是传统的C数组或VLA或C++ 11中的任何内容.

c++ dynamic-arrays dynarray c++14

45
推荐指数
1
解决办法
9734
查看次数

在数组char指针的情况下,'数组名称'是什么意思?

在我的代码中:

 char *str[] = {"forgs", "do", "not", "die"};
 printf("%d %d", sizeof(str), sizeof(str[0]));  
Run Code Online (Sandbox Code Playgroud)

我得到了输出12 2,所以我怀疑是:

  1. 为什么会有区别?
  2. 这两个strstr[0]是字符指针,对不对?

c pointers sizeof

22
推荐指数
3
解决办法
4313
查看次数

标签 统计

c ×1

c++ ×1

c++14 ×1

dynamic-arrays ×1

dynarray ×1

pointers ×1

sizeof ×1