ENUM内の値の配列?

私はこのコードを持っています

enum type {NOTHING, SOMETHING, SOMETHINGELSE}
type *x;

現時点では、私は x [765] == SOMETHING などを使用しています。

x[765] == SOMETHINGELSE;
x[765].position == 43.5;
x[765].somevar == 12;

私は私の質問の中で私の貧弱な言葉遣いをC ++で始めていることを謝罪します、私は欲しいものを知っています。私はそれをどうやって尋ねるのか分かりません。

ありがとう。

0
あなただけ出始めている場合は、私は本のリスト上の微細入門本の一つを提案することができますか? stackoverflow.com/questions/388242 /…
追加された 著者 Mark B,
== は比較演算子です。代入演算子が必要な場合は、それは単一の = です。
追加された 著者 Troubadour,
私はこれを実感しています。そのデモの目的は価値の例を示すことです:)
追加された 著者 Elgoog,

5 答え

まるであなたが「知識」を構造化する方法を探しているかのように見えます。これは構造体またはクラスで行います:

#include 

struct Info {
   enum thingness { nothing, something };

  //'member' variables
   thingness howMuch;
   int a_counter;
   float position;
};

int main(){
  Info object;
  object.howMuch=Info::something;
  object.a_counter=1;
  object.position=5.4;

これらの種類のオブジェクトをコンテナにグループ化できます(通常は std :: vector )。

 //a container of InterestingValues
  std::vector container(300);

  container[299].howMuch=Info::nothing;
  container[299].a_counter=4;
  container[299].position = 3.3;

 //or assign rightaway:
  container[2] = object;
}
2
追加された
はい - 私は#include文を追加しませんでした。私は今それらを追加します。
追加された 著者 xtofl,
私のコンパイラが復帰しています: error:オブジェクトは型を指定しません
追加された 著者 Elgoog,

より複雑なタイプにする必要があります:

struct type
{
    enum flag_type
    {
        NOTHING, SOMETHING, SOMETHINGELSE
    } flag;
    double position;
    int somevar;
};

and later have an array of this new type.

1
追加された

Get yourself a good book to learn from. A list of good books is available here: The Definitive C++ Book Guide and List

C ++では、構造体の配列を宣言する方法を尋ねています。これを試して:

struct type {
    double position;
    int somevar;
};

type *x;
x[765].position = 43.5;
x[765].somevar = 12;
1
追加された

列挙型は基本的にint型の置換可能なラベルです。構造体またはクラスを定義する必要があります。

struct type
{
   float position ;

};

type var;
var.position = 3.4;
0
追加された

あなたの型enumは、他のフィールドと共にクラスのメンバーである必要があります。例えば、

class MyType
{
public:
    type t;
    double position;
    int somevar;
};

MyType インスタンスの配列

MyType *x;

あなたはあなたがする必要があると期待していることをすることができます

x[765].t = SOMETHINGELSE;

enumに割り当てる。

0
追加された