问题标签 [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.

0 投票
0 回答
1006 浏览

c++ - std::array 与经典数组 [].. 它是如何工作的?

std::array我一直在阅读C++11 附带的这个惊人的新特性。看起来std::array<int, 4> a;……就像内存一样轻int a[4];,而且……读写速度一样快,就内存管理而言更安全……你甚至可以对其进行迭代……和使用漂亮的初始化程序..

我忍不住想“是的,但是.. 障碍在哪里?”。这到底是怎么回事?这个std::array<int,4> a对象是什么?拥有这么多新功能的成本在哪里?仅仅是 C++ 创造者的汗水吗?在语言实现中是否更重要?编译器的更多工作?怎么会如此美妙?我只是错过了什么吗?

如何在运行时免费将所有这些特性添加到经典数组中?答案似乎是编译工作成功了,std::array对我来说不再是奇迹……只是一种乐趣。

0 投票
2 回答
4383 浏览

c++ - 将 std::array 转换为 std::vector

在下面的代码中,函数 (foo) 参数 ( std::vector) 的大小可以是使函数成为通用函数的任何值。但是,有时大小容器是已知的,因此可以使用 std::array。问题是std::arraystd::vector. 解决此问题的最佳方法是什么?std::vector在这种情况下总是使用总是更好吗?

0 投票
1 回答
1835 浏览

c++ - 是否使用 std::array导致代码膨胀?

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

标准容器数组 [...] 没有超出它需要保存其元素的空间开销 [...]。换句话说,它非常像一个没有问题的内置数组。( C++11 常见问题)

但是,据我了解,作为模板容器,就程序大小而言,会有开销,因为它将为每个不同的 N 生成代码,数组实例化。

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

我应该担心一般的非类型模板参数吗?

0 投票
1 回答
7594 浏览

c++ - std::array 的大小是多少?

sizeof(std::array<char, N>)C++ 标准对应该是什么(对于某些常量N)有什么看法?

对另一个问题的评论中,有人提到std::array并不总是“分配堆栈”。该评论是对另一条评论的回应,该评论推测将太大的常量std::array声明为局部变量可能会导致程序由于“堆栈分配”变量的资源不足而中止。我认为后续评论意味着有可能std::array以某种方式切换到动态分配模式。

我可以想象,可能有某种 SFINAE 可以应用于一个数组大小阈值,它触发一个std::array实际动态分配数组并管理它的专门化。在这种情况下,sizeof(std::array<...>)可能只是指针的大小。这允许发生吗?

0 投票
0 回答
162 浏览

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.

0 投票
2 回答
705 浏览

c++ - std::array 中的模板类

是否可以在不指定类型名的情况下在 std::array 中添加模板类?我是说。

原因是我有一种接受所有派生类的存储,MyClass但模板类的问题是我需要指定类型名,然后类需要是这样的:

我想要或多或少这样的东西:

这样我可以添加任何派生自 MyClass 的类。

有没有办法做到这一点?

0 投票
2 回答
5523 浏览

c++ - std::array 初始化程序如何为 char 工作?

我不确定以下代码是如何工作的。我以为你必须这样做,{'h', 'e' ...etc...}但它似乎工作正常。另一方面,如果你这样做std::array<const char*,它只会向数组添加一个元素。字符串字面量初始化是否有特殊规则?

0 投票
1 回答
2591 浏览

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 创建一个构造函数,然后实例化该类?我究竟做错了什么?

任何反馈表示赞赏!谢谢!

0 投票
1 回答
1678 浏览

c++ - 0 长度数组(或 std::array)有什么用?

在 C++11 中,它允许您创建一个0长度 C 数组,std:array如下所示:

  1. 所以我在想一个没有空间存储的数组有什么用?
  2. 其次,什么是零长度数组?如果是指针,它指向哪里?
0 投票
1 回答
88 浏览

c++ - 从 Vector 访问某些类函数 C++ 的问题

我有一个类型的向量Tab,但是当我在 s 的向量上调用类函数时,Tab我没有得到任何输出。但是,我也没有收到任何错误。

如果您知道什么是 Android 启动器,那么这应该是一个简单的基于控制台的 Android 启动器测试用例,带有分类选项卡,允许您滚动到另一个选项卡。

主文件

选项卡

选项卡.cpp

我知道在我的代码中我返回了一些地址和一些字符串,但这只是为了测试一种方法是否适用于另一种方法,但事实并非如此。