2016-06-26 4 views
-2

ベクトル/配列内の要素を使用するC++コードを作成しています。私は何をやっていることは、私はベクトルを作成し、私のメインのコードの外に基本的である:ベクトル/配列のポイント位置

 const int Lx = 4, Ly = 4; 
    const int L = Lx*Ly; 

    inline void vector_lattice(){ 

     for (int i = 0; i < L+1; i++){ 
      s[i]=0.0; 
     } 

     for (int i = 0; i < L; i++){ 
      s[i] =1; 
     } 

    } 

最終的に私は5×5の配列にそれを有効にしますので、LXおよびLyのは、私に寸法を与えるだろう。私の問題で

これは私が今

 . . . . . 
     . . . . . 
    . . . . . 
     . . . . . 
    . . . . . 

それともなるようなものが必要しかし

 . . . . . 
    . . . . . 
    . . . . . 
    . . . . . 
    . . . . . 

のような出力を持っていなければならない「空間」における位置のセットを、与えますそれらのポジションを変更する柔軟性がありますが、私は整数だけであり、そのために私のポジションと宇宙人は常に同じであるので、私はそれをどうやって行うのか本当に分かりません。どのようにしてそれを行うことができるかについてのアイデアはありますか?

+0

最初のループは、L + 1つの要素をゼロになり、意図したということでしょうか? –

+0

「標本」を偶数列に、奇数列を奇数列に入れるだけです。空白の値を持つ「空の標本」である「標本」を持っています。 – Jezor

+0

さらなる制約がなければ、2番目の画像のように配列を解釈するのに何が妨げられますか? –

答えて

0

抽象度を付けます。これらの代わりに、int秒のSpecimenクラスとストアオブジェクトを定義するか、あなたが使用しているものは何でも:

class Specimen { 
    // Your Specimen class definition here, all specimens should inherit from it. 
} 

class EmptySpecimen : public Specimen { 
    // Nothing here other than overriden virtual methods. 
} 

class SomeSpecimen : public Specimen { 
    // Actual specimen implementation. 
} 

し、後でコード内で使用して、あなたのベクトルを初期化することができます

size_t width, height; // assign some values to these 
vector< vector <Specimen*> > specimensMatrix; 
specimensMatrix.resize(width); 
for (size_t x = 0; x < width; ++x) { 
    specimensMatrix.resize(height); 
} 

をあなたが期待するどのようにそれを埋めるためにそれ充填する:

for (size_t x = 0; x < width; ++x) { 
    for (size_t y = 0; y < height; ++y) { 
     if (x % 2 == 0) { 
      if (y % 2 == 0) { 
       specimensMatrix[x][y] = new SomeSpecimen(/* ... */); 
      else 
       specimensMatrix[x][y] = new EmptySpecimen(); 
     } 
     else { 
      if (y % 2 == 0) { 
       specimensMatrix[x][y] = new EmptySpecimen(); 
      else 
       specimensMatrix[x][y] = new SomeSpecimen(/* ... */); 
     } 
    } 
} 

のでサイズ8X6の行列で、あなたのオブジェクトは、(そのようためEを見ていきますとSomeSpecimenためS):

SESESESE 
ESESESES 
SESESESE 
ESESESES 
SESESESE 
ESESESES 

それとも、あなたは空白やドットでSEを交換する場合:

. . . . 
. . . . 
. . . . 
. . . . 
. . . . 
. . . . 
関連する問題