0

我有一个包含 valarrays 的 ac 数组,如以下代码截图所示,

#include <iostream>
#include <valarray>
#include <math.h>

using namespace std;

typedef uint uint32_t;
typedef std::valarray<uint32_t> uivector;

int main()
{
    uivector a[] = { uivector(uint32_t(1),8), uivector(uint32_t(2),4), uivector(uint32_t(3),5) };
}

现在我如何访问第二个元素的第三个元素valarray(存在的值2),而不制作任何副本并在单行语句中?是否可以重载[]运算符以实现相同的目的?像a[1][2]什么?

4

1 回答 1

1

第二个 valarray 的第三个元素确实是a[1][2]. 下标运算符已被 重载std::valarray。没有复制,表达式的值a[1][2]是包含在 valarray 中的实际对象。

于 2017-02-24T19:13:52.983 回答