不明な量の値を格納してから多くを削除するための最適なデータ構造は何ですか?
私はファイルを読んでいて、各行はより大きなデータ構造に C 文字列として格納されています。各行の長さはおそらく 20 文字未満で、1 つのサンプル ファイルには 300000 行あります。これから使用するデータ構造は、最初の作成時にしかサイズが大きくなりません。そこからはサイズが縮小するだけです。何を使用しますか?Java では、Array List または Vector を使用します。動的配列は機能しますか?もしそうなら、どのように見えますか?
char aLine[21];
char *data = malloc(aLine);
fp = fopen("datafile", "r");
if(fp== NULL)
exit(EXIT_FAILURE);
while(fscanf(fp, "%20s", aLine) == 1)
{
data = aLine;
realloc(data, sizeof(data)+sizeof(aLine));
}
標準の C および POSIX 機能を使用したいので、リストを持つことがサードパーティのライブラリを使用することを意味する場合、それは選択肢ではないと思います。
編集:リンクされたリストを作成するのは簡単ではありません.2番目に良いオプションは何ですか?