0

我正在尝试添加以下内容:

我有一个双指针数组叫A。我有另一个双指针数组叫它B,我有一个无符号整数叫它C。

所以我想做:

A[i] = B[i] - C;

我该怎么做?我做了:

A[i] = &B[i] - C;

我不认为我这样做是正确的。

编辑:我想要做的是,取双指针数组的索引 i 处的值并从中减去一个 int,然后将该结果存储到索引 i 处的双指针数组中。

4

3 回答 3

4

您的问题有点不清楚,但是如果 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;

于 2010-03-20T21:05:12.627 回答
0

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 库来简化这一点。)

于 2010-03-20T21:06:45.010 回答
0

你想要的是:

&( *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];
}
于 2010-03-21T21:24:18.223 回答