- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
int input[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
std::valarray<int> test(input, sizeof(input)/sizeof(input[0]));
const std::slice_array<int> s1 = test[std::slice(1, 3, 2)];
const std::slice_array<int> s2 = test[std::slice(0, 3, 1)];
// is it correct to do this?
s1 = s2;
std::valarray<int> temp(s1);
printf("temp[0]=%d temp[1]=%d temp[2]=%d\n", temp[0], temp[1], temp[2]);
运行代码,我得到:
test: 0 1 2 3 4 5 6 7 8 9
s1: 1 3 5
s2: 0 1 2
s1=s2
s1: 0 0 2 --> 0 1 2 is expected for s1
test: 0 0 2 0 4 5 6 7 8 9
我只是想知道 s1 = s2
使用是否正确?
如果使用正确,那么可以说这是我旧版本的 LLVM C++ 库的错误吗?
最佳答案
是的,你可以分配一个std::slice_array
给另一个 operator=
Assigns the selected elements from sl_arr to the referred to elements of *this.
此外,这里没有错误,s1 = [0, 0, 2]
的结果是正确的。
在你的情况下:
test { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }
s1 ^ ^ ^
s2 ^ ^ ^
注意 s2
引用的第一个元素是 0,它被分配给 s1
的第一个元素, 这是 test
的第二个元素.
这个新分配的值是 s2
的第二个值它被分配给 s1
的第二个值, 等等。
在作业结束时,test
成为
test { 0, 0, 2, 0, 4, 2, 6, 7, 8, 9 }
关于c++ - 将一个 slice_array 分配给另一个 slice_array 是否正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63838160/
int input[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; std::valarray test(input, sizeof(input)/sizeof(input
在 header ,定义了五个类模板:valarray , slice_array , gslice_array , mask_array和 indirect_array . 对于 valarray对
All overloads of assignment operators的std::slice_array都是const成员函数,但为什么要这样设计呢? 可能是因为 std::slice_array
我想知道为什么我不能比较some_valarray[first_slice] int main() { //Initialize valarray std::valarray val0{0,
这里有一个代码不能用至少符合 c+++11 的编译器编译(在 godbolt 上试过): #include #include #include class Whatever { public:
我有一个函数接受对 valarray 的 const 引用,我希望能够对数组进行切片并将切片传递给另一个需要 const slice_array 的函数。我知道我可以只使用 operator[] 和一
我是一名优秀的程序员,十分优秀!