1

文字列と int が含まれる C++ で多次元配列を作成しようとしています。私は試しint test[1][2] = {{"a", 1}, {"b", 2}, {"c", 3}};ましたが、g ++は私に次のことを与えました:

example.cpp: In function ‘int getServer(std::string)’:
error: too many initializers for ‘int [1][2]’
error: invalid conversion from ‘const char*’ to ‘int’ [-fpermissive]

イニシャライザにも使用しようとしましchar test[1][2]たが、これは機能しませんでした。

編集:これはかなり大きな多次元配列になり、長さが異なるループ制御変数に基づいて値を取得して格納できるようにするために必要です。

4

3 に答える 3

4

これは c++ では許可されていません。配列は 1 つの型しか持てないため、このように 2 つの型を持つ配列を指定しても実際には意味がありません。

これを行う私の考えは、構造体を定義することです:

struct pair {
    std::string s;
    int i;
}

次に、ペア型の 1 次元配列を定義します。次に、次のような要素にアクセスしますarray[0].s

于 2013-08-27T15:44:49.473 に答える
0

これは通常、C++ では行うべきではありません。ペア (char と int など) を関連付けていて、それらを配列に入れたい場合は、次のように単純な構造体を使用して 2 つを関連付ける必要があります。

struct MyPair {
   char letter;
   int number;
};

次に、次のように使用します。

MyPair pairAr[2];
MyPair myPair;
myPair.letter = 'a';
myPair.number = 1;
pairAr[0] = myPair;

これは一般に、より C スタイルです。また、必要な情報を含むクラスを作成し、クラスのように STL コレクションを使用することを検討することもできますVector

于 2013-08-27T15:46:38.663 に答える