大きなデータ セット (さまざまな長さの整数配列、テキスト文字列のライブラリなど) を実行可能ファイルに直接ハードコードしたいので、追加のファイルはありません。
私の質問は、C++ でこれを行うための最も実用的で組織化された方法は何ですか? ヘッダーまたはソース ファイルに関して、どこにデータを配置しますか? どのような構造を使用すればよいですか?
これは、データを処理する方法として受け入れられていないことを認識しています。しかし、ユーモアを!
大きなデータ セット (さまざまな長さの整数配列、テキスト文字列のライブラリなど) を実行可能ファイルに直接ハードコードしたいので、追加のファイルはありません。
私の質問は、C++ でこれを行うための最も実用的で組織化された方法は何ですか? ヘッダーまたはソース ファイルに関して、どこにデータを配置しますか? どのような構造を使用すればよいですか?
これは、データを処理する方法として受け入れられていないことを認識しています。しかし、ユーモアを!
C++ と C の両方で、ヘッダー ファイルを使用してこれらの変数を宣言し、実際の初期化コードを .c (または .cc) ファイルに配置できます。C と C++ の両方に適切な初期化構文があります。例えば:
mydata.h:
extern int x;
extern int a[10];
extern unsigned char *s;
mydata.c:
#include "mydata.h"
int x = 123;
int a[10] = {1,2,3,4,5,6,7,8,9,10};
unsigned char *s = "mystring";
その場合、main.c は次のようになります。
#include "mydata.h"
#include <stdio.h>
int main(const int argc, char *argv[])
{
printf("%d, %d, %s\n", x,a[5],s);
}
テスト実行は次のようになります。
$gcc -o main main.c mydata.c
$ ./main
123, 6, mystring
さて、本当に整理するには、Perl/Python/PHP スクリプトを記述して、CSV ファイルの SQL データベースなど、データソースからそのような形式のファイルを生成します。