问题标签 [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 投票
3 回答
11029 浏览

c++ - 将字符数组中的元素范围提取到字符串中

我想从 char 数组的开头提取一系列元素并将它们放入字符串中。该范围可以小于或等于元素的数量。

这就是我想出的。

有一个更好的方法吗?

我一直在研究类似 std::string 的迭代器构造函数。例如 std::string(buffer.begin(), buffer.end()),但我不想要所有的元素。

谢谢。

0 投票
1 回答
1442 浏览

c++ - “解包” std::array作为函数的参数

这是一个很好的(不是我的)例子,你可以如何扩展(或“爆炸”)元组作为函数的参数:

那么你可以像这样使用它:

现场版

std::array我在徘徊,因为它很像元组,你怎么能做同样的事情。std::get<N>一起工作,std::array所以我认为修改这个解决方案很容易。但是这样的事情不起作用:

因为部分std::result_of<FT(Arg&&)>::type。参数类型Arg&&错误并且result_of没有字段type。对于元组Args&&...扩展,但现在应该“重复”I次。有没有办法使用result_of这样可以扣除返回的类型?

我也想知道,拥有“解包”的工具,tuple是否array可以递归地“解包”(可能使用enable_if)结构tuple<array<int, 2>, tuple<array<double,3>, ...之类的?某种树在哪里是树枝,tuplearray其他类型是叶子?

0 投票
3 回答
153 浏览

c++ - std::accumulate 中的无效转换

我有一个N用静态函数表示维度点的类min(逐个字段的最小字段)

当我写的时候一切都很好

但是如果我尝试使用std::accumulate数组

我收到一个错误:

这是std::accumulate实现与我的构造函数不兼容的问题吗?

0 投票
2 回答
1342 浏览

c++ - 大小为零的 std::array

std::array<int,0>拥有大小为零的数组是什么意思?

在发布此之前,我已经在 SO 中解决了类似的问题,所有这些问题都是关于简单数组类型和 C 语言的,其中大多数都说这是非法的。但在 C++array<int,0>中是允许的。

根据 cppreference.com

零长度数组(N == 0)有一种特殊情况。在这种情况下,array.begin() == array.end(),这是一些独特的价值。调用front()orback()对大小为零的数组的影响是未定义的。

为什么不定义为非法?

0 投票
1 回答
574 浏览

c++ - c++11数组初始化不会调用复制构造函数

我正在制作一个使用其大小模板化的数组的小类。这是一些代码...

.hpp

.cc

在构造函数的成员初始化中,我不能combo{sequence}用作初始化器,因为它只接受sf::Keyboard::Key类型。如果它要求一个 ,这是有道理的initializer_list,但这对我来说似乎很奇怪。对于其他标准容器,我可以使用 {} 表示法调用复制构造函数。这是一个怪癖std::array吗?或者也许是我的clang中的一个错误?

以防万一,这是我的clang版本:

0 投票
0 回答
34 浏览

c++ - 将 2d std::array 传递给函数 c++

我正在尝试将二维数组传递给构造函数类

我做了一些搜索,我尝试使用模板..但不起作用

但是,我的代码产生以下错误:

主要代码:

这里是构造函数的代码:

0 投票
1 回答
140 浏览

c++ - 转换/重新解释向量的有效方法作为向量>

我想调用一个方法(模板),它vector<array<T, N>>&从另一个返回 a 的方法中获取结果vector<T>

是否有一种有效的 (O(1)) 方式将 a 重新解释vector<T>为 a vector<array<T,1>>?它可能/安全reinterpret_cast吗?

0 投票
2 回答
1538 浏览

arrays - 重置循环缓冲区中的元素

我被要求在 C++中实现一个采用未指定类型的循环缓冲区。我假设泛型类型是原始类型。(或者它应该考虑非原始类型?)对于缓冲区,我使用一个基本数组,例如 T[]newdelete来初始化和销毁​​它。

我已经实现了缓冲区类并在具有预期输出的整数上对其进行了测试。但它不起作用std::string。问题是,当我弹出缓冲区时,我通过将元素设置为零来清除元素,编译器抱怨这样做是模棱两可的。因此,我需要一种通用的方法来清除元素,并且我认为它std::array可能支持此功能,但我在文档中找不到它。

是否有一种通用方法来清除 std::array 或基本数组中的元素,或者 std::allocator 是我唯一的选择?或者,如果我完全走错了方向,我应该如何实现 pop 方法来重置第一个元素并将前索引增加到下一个元素的索引

提前致谢!

如果有帮助,以下是我的相关代码:

0 投票
2 回答
515 浏览

c++ - 索引到 std::array 的 std::array

我对 C++ 中数组数组的索引有些困惑:

我有:

当我进行索引时,我假设以下内容:

因此,首先outer_index进入数组SIZE_OUTER,然后是内部索引。

真的吗?

0 投票
1 回答
747 浏览

c++ - Compilation error when typedef an std::array

I define a type called inputTy using std::array (c++11) , the dimension of the array declared as an external constant integer d.

Why do I get such compilation error?

Thanks for your help.