将原始数据封装在类似std容器的数组中,具有运行时大小
Wrap raw data in std container like array, with runtime size
有没有像std::array这样固定大小的std容器,但大小不是编译时,而是运行时?
我想把我存储在std::array
中的一些数据的一部分传递给std::acculumate
和类似的函数。我不想使用std::vector(在嵌入式平台上工作),因此我正在寻找介于两者之间的东西。
假设代码是这样的,我想要的是用一些东西来代替array_part
:
#include <array>
#include <algorithm>
#include <iostream>
#include <numeric>
#include <vector>
int main()
{
std::array<float,100> someData;
// fill the data
int dataCount = 50;
std::array_part<float> partOfData(someData.data(),dataCount)); // <<<<< here
const auto s_x = std::accumulate(partOfData.begin(), partOfData.end(), 0.0);
}
如果没有这样的容器,我如何包装我所拥有的原始数据,并将它们呈现给std::accumulate
和其他std算法?
std::accumulate
采用迭代器。您可以将包含感兴趣范围的迭代器传递给它:
auto start = partOfData.begin() + 42;
auto end = partOfData.begin() + 77;
const auto s_x = std::accumulate(start, end, 0.0);
或者,您可以推出自己的非拥有容器类对象。请参阅此问题以获取示例。
相关文章:
- 在命令行上将输入显示到数组中时如何删除 ./a.out?
- 基于数组的列表 - 动态数组创建时出错
- For 循环在尝试读取数组 c++ 时程序崩溃
- 蝴蝶代码 88.合并排序数组 c++ 运行时错误
- 使用指针访问数组元素时出现意外结果
- 为什么在 c++ 中分配 char 数组元素时,分配的字符会被销毁?
- 如何将数组传递给函数,以便在更改该函数中的数组值时原始数组的值不会更改?
- 当将多个TypedArrayContents数组加载到V8数组中时(数组数组)时,最后一个元素将覆盖所有元素
- 排列程序无法写入数组 - 运行时错误
- 当我使用 += 将数字添加到数组中时,无论数字是什么,它总是以 0 结束
- 返回矢量数组 c++ 时出现问题
- 重载常量和非常量转换运算符返回数组类型时出现 MSVC 错误 C2593
- 当我超载数组运算符时,为什么我的私有变量等于零
- 覆盖数组元素时如何调用构造函数
- 2d 数组运行时错误 "std::bad_alloc()" what()
- C++2d数组运行时错误
- 尝试将数据保存到数组中时出现ifstream运行时错误
- 我认为做而正在进入无限循环.或数组.(运行时错误)
- 数组运行时错误
- 数组运行时错误