问题标签 [stdarray]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - std::array 与经典数组 [].. 它是如何工作的?
std::array
我一直在阅读C++11 附带的这个惊人的新特性。看起来std::array<int, 4> a;
……就像内存一样轻int a[4];
,而且……读写速度一样快,就内存管理而言更安全……你甚至可以对其进行迭代……和使用漂亮的初始化程序..
我忍不住想“是的,但是.. 障碍在哪里?”。这到底是怎么回事?这个std::array<int,4> a
对象是什么?拥有这么多新功能的成本在哪里?仅仅是 C++ 创造者的汗水吗?在语言实现中是否更重要?编译器的更多工作?怎么会如此美妙?我只是错过了什么吗?
如何在运行时免费将所有这些特性添加到经典数组中?答案似乎是编译工作成功了,std::array
对我来说不再是奇迹……只是一种乐趣。
c++ - 将 std::array 转换为 std::vector
在下面的代码中,函数 (foo) 参数 ( std::vector
) 的大小可以是使函数成为通用函数的任何值。但是,有时大小容器是已知的,因此可以使用 std::array。问题是std::array
将std::vector
. 解决此问题的最佳方法是什么?std::vector
在这种情况下总是使用总是更好吗?
c++ - 是否使用 std::array导致代码膨胀?
我在一些地方看到了std::array
在 C++ 中使用 C 样式数组的建议,声称它是一种更好、更安全且没有开销的替代方案。看:
标准容器数组 [...] 没有超出它需要保存其元素的空间开销 [...]。换句话说,它非常像一个没有问题的内置数组。( C++11 常见问题)
但是,据我了解,作为模板容器,就程序大小而言,会有开销,因为它将为每个不同的 N 生成代码,数组实例化。
假设我的程序std::array
在不同的地方使用了几个不同的整数 N,这会导致代码臃肿吗?可以忽略不计吗?
我应该担心一般的非类型模板参数吗?
c++ - std::array 的大小是多少?
sizeof(std::array<char, N>)
C++ 标准对应该是什么(对于某些常量N
)有什么看法?
在对另一个问题的评论中,有人提到std::array
并不总是“分配堆栈”。该评论是对另一条评论的回应,该评论推测将太大的常量std::array
声明为局部变量可能会导致程序由于“堆栈分配”变量的资源不足而中止。我认为后续评论意味着有可能std::array
以某种方式切换到动态分配模式。
我可以想象,可能有某种 SFINAE 可以应用于一个数组大小阈值,它触发一个std::array
实际动态分配数组并管理它的专门化。在这种情况下,sizeof(std::array<...>)
可能只是指针的大小。这允许发生吗?
c++ - Compare (and) insert (in) from a position std::array
I have a std::array
with several items and I want to compare it from a certain position and also insert in a certain position, for example.
I want to compare the array numbers from item 5 until the last one, with this one, from the beginning, that is position 0 until position 4.
It will (in this case) return true.
And how to insert items from a position? I want to insert on the array compare from the position 5 until the last position, that is 9.
For example, if I want to insert these numbers: 5, 45, 32, 14, 10. It will turn:
Thanks in advance.
c++ - std::array 中的模板类
是否可以在不指定类型名的情况下在 std::array 中添加模板类?我是说。
原因是我有一种接受所有派生类的存储,MyClass
但模板类的问题是我需要指定类型名,然后类需要是这样的:
我想要或多或少这样的东西:
这样我可以添加任何派生自 MyClass 的类。
有没有办法做到这一点?
c++ - std::array 初始化程序如何为 char 工作?
我不确定以下代码是如何工作的。我以为你必须这样做,{'h', 'e' ...etc...}
但它似乎工作正常。另一方面,如果你这样做std::array<const char*
,它只会向数组添加一个元素。字符串字面量初始化是否有特殊规则?
c++11 - 在没有类外定义的情况下访问静态 constexpr std::array
我有一个定义一些数组的类。
点数.hpp
然后我的主文件使用这些数组。
主文件
当我使用 C++11 和 g++ 4.8.2 编译我的代码时,我收到以下链接器错误:
我试图创建一个 Points.cpp 文件,以便编译器可以从中创建一个目标文件。
点数.cpp
但这并没有解决链接器错误。
我的印象是可以在类声明中将变量初始化为 C++11 中的静态 constexpr,然后按照我的方式访问它们,如以下问题所示:https ://stackoverflow.com /a/24527701/1991500
我是否需要为 Points 创建一个构造函数,然后实例化该类?我究竟做错了什么?
任何反馈表示赞赏!谢谢!
c++ - 0 长度数组(或 std::array)有什么用?
在 C++11 中,它允许您创建一个0
长度 C 数组,std:array
如下所示:
- 所以我在想一个没有空间存储的数组有什么用?
- 其次,什么是零长度数组?如果是指针,它指向哪里?
c++ - 从 Vector 访问某些类函数 C++ 的问题
我有一个类型的向量Tab
,但是当我在 s 的向量上调用类函数时,Tab
我没有得到任何输出。但是,我也没有收到任何错误。
如果您知道什么是 Android 启动器,那么这应该是一个简单的基于控制台的 Android 启动器测试用例,带有分类选项卡,允许您滚动到另一个选项卡。
主文件
选项卡
选项卡.cpp
我知道在我的代码中我返回了一些地址和一些字符串,但这只是为了测试一种方法是否适用于另一种方法,但事实并非如此。