0

私は以下を追加しようとしています:

A を呼び出す double ポインターの配列があります。別の double ポインターの配列を B と呼び、unsigned int を 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] に割り当てることはできないと思います。最初に、double の一時 (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 に答える