ページ 11

配列の要素数について

Posted: 2015年11月01日(日) 15:38
by タカユキ38
ヘッダファイルに

コード:

struct Test{
	string testString[];
	int x;
        int y;
};
というように定義して、
ソースコードに

コード:

Test test[] = {
 {{"aaa","bbb"},100,200},
 {{"ccc","ddd",ccc},150,250},
};
というように書いているのですが、エラーが出てしまいます。
エラーの内容からtestString[]に要素数を指定してないことが問題だと思っています。
ただ、配列ごとに格納するstringの数を変えたいので要素数はできれば指定したくありません。
いろいろ調べてみたのですがいい方法が見つかりませんでした。
要素数を指定しなくてもエラーが出ない方法がありましたら教えてください。

Re: 配列の要素数について

Posted: 2015年11月01日(日) 15:50
by みけCAT
タカユキ38 さんが書きました:要素数を指定しなくてもエラーが出ない方法がありましたら教えてください。
Testを使わなければ、要素数を指定しなくてもエラーが出ませんでした。
タカユキ38 さんが書きました:ただ、配列ごとに格納するstringの数を変えたいので要素数はできれば指定したくありません。
std::vectorを使うといいかもしれません。

コード:

#include <vector>
struct Test{
	std::vector<string> testString;
	int x;
        int y;
};
C++11以降なら、初期化子リストが使えるので
タカユキ38 さんが書きました:

コード:

Test test[] = {
 {{"aaa","bbb"},100,200},
 {{"ccc","ddd",ccc},150,250},
};
のように書けます。

Re: 配列の要素数について

Posted: 2015年11月01日(日) 16:07
by タカユキ38
std::vector<string> testStringに変えたらエラー出なくなりました。
ありがとうございます。