我正在尝试添加以下内容:
我有一个双指针数组叫A。我有另一个双指针数组叫它B,我有一个无符号整数叫它C。
所以我想做:
A[i] = B[i] - C;
我该怎么做?我做了:
A[i] = &B[i] - C;
我不认为我这样做是正确的。
编辑:我想要做的是,取双指针数组的索引 i 处的值并从中减去一个 int,然后将该结果存储到索引 i 处的双指针数组中。
我正在尝试添加以下内容:
我有一个双指针数组叫A。我有另一个双指针数组叫它B,我有一个无符号整数叫它C。
所以我想做:
A[i] = B[i] - C;
我该怎么做?我做了:
A[i] = &B[i] - C;
我不认为我这样做是正确的。
编辑:我想要做的是,取双指针数组的索引 i 处的值并从中减去一个 int,然后将该结果存储到索引 i 处的双指针数组中。
您的问题有点不清楚,但是如果 A 和 B 是指向 double 的指针数组,并且您想用固定数量的 C 更改每个指针,那么对于 A 中的每个元素:
A[i] = B[i] - C;
应该这样做。&B[i] 获取指针本身的地址,所以它是完全不同的东西。
示例代码:
for(int i = 0; i < size_of_A; ++i) A[i] = B[i] - C;
C++ 没有简单的映射语法,你要么
(1) 使用循环
for (int i = 0; i < 1482; ++ i)
A[i] = B[i] - C;
(2)std::transform
用于<algorithm>
:
#include <functional>
#include <algorithm>
...
std::transform(B, B+1482, A, std::bind2nd(std::minus<double>(), C));
(可能有一个 Boost 库来简化这一点。)
你想要的是:
&( *B[i] - C )
但我认为你不能将它直接分配给 A[i]。首先,您必须创建一个临时(T)双精度数组。
for(int i=0; i< size_of_B; i++){
T[i] = *B[i] - C;
}
for(int i=0; i< size_of_T; i++){
A[i] = &T[i];
}