質問

私は使用しないC++のものや、過去最近ではさらに多くのスレッドセーフで、C#、と思っているのに苦労しての基礎をC++です。このことは特に難して作ることを義務付けるもので、最軽C++を構築しま使用できるので、すべての文字列にする必要char*'sがありません提供のためのSTLのリストが表示されます。

また僕にしようとしていい作文字列のリストから、うに、私はいつの間にか使用STLまたはクライアントまで、フルのC#.基本的にはたいていの機能など

char **registeredNames = new char*[numberOfNames];

その後、

RegisterName(const * char const name, const int length)
{
    //loop to see if name already registered snipped
    if(notFound)
    {
        registeredNames[lastIndex++] = name;
    }

}

やれるのであればC#...

if(!registeredNames.Contains(name))
{
    registeredNames.Add(name);
}

ことはうまくいきませんでした。ピックアップしました。const自然に渡された変数(constポインタは、定数の文字列ではなく、私の基本的な問題は、私は常に避けるこうした状況は過去に使用STLリスト等うことがなかった頃です!

役に立ちましたか?

解決

かを利用する必要がstrcmpた場合、文字列にすでに格納されている:

for (int index=0; index<=lastIndex; index++)
{
  if (strcmp(registeredNames[index], name) == 0)
  {
    return; // Already registered
  }
}

その場合に必要な情報であるアカウントを文字列のコピーをする必要がありま割り当てをバッファにコピーする文字です。

char* nameCopy = malloc(length+1);
strcpy(nameCopy, name);
registeredNames[lastIndex++] = nameCopy;

なんでしょうかげかどうかの入力がNULLの場合終了-ない場合には、細心の注意が必要であり、strcmp/strcpyんに適しています。

他のヒント

が正当な理由があることをSTLが避けられます。作業する場合の固定環境での記憶速度はプレミアムでは難しいというの下にフードをSTL.はい、で記入することができメモリallocatorsり、速度が一般的な問題も違いがありますSTLの実装をプラットフォーム、その違いmigheに微妙なるバギー.メモリはおそらく私の最大の懸念を考えるときに使用しています。

メモリは貴重なり、その利用方法が必要で厳重に管理します。なんてこそこそこの概念が意味です。いるSTL使用ツール(以外のゲームコード)が禁止内に以下ご記入の上ご入金ください。一その他の関連する問題は、コードサイズです。私は若干のかわからないかSTLに貢献できる実行ファイルサイズのものになっていますが著しく増加しのコードサイズ使用時STL.された場合にも実行可能"だけを2Mの大き、2M以RAMのために何かごゲームです。

STLが嬉しいですよね。することが可能で虐待を受けたプログラマだった、ということがあります。な意図が可能であり、これまでのように提供手に驚きを見たくないし、メモリの膨張とパフォーマンス問題)

みなさんしっかりと近いおます。

for ( i = 0; i < lastIndex; i++ ) {
    if ( !strcmp(&registeredNames[i], name ) {
        break;    // name was found
    }
}
if ( i == lastIndex ) {
    // name was not found in the registeredNames list
    registeredNames[lastIndex++] = strdup(name);
}

ない場合がございますを利用したいstrdup.ことになるだけで、どのように、名前が与えられます。いうまでにない空間を割り当てのための新しい名前を自分で使用その他のメモリ構築が既に入手できます。

とい文字列を書き込みクラスです。していれられた文字列の授業としてそれをその例ではどのような再スエンジニアリングの基本的なCの構築可能です。あり、文字列のクラスを隠す多くのニフティの詳細を明らかにするようお願いでメモリ使用量のパターンも等もコンソール(ps3は360など)環境です。約8年前からしかったです。200000+メモリ割り前としてメインメニューを開きます。メモリーした非常に断片化され、できませんでした他のゲームを固定します。また傷までリッピングです。

クラスのデザインは一部の"とんとことって~えいとくん。これに対し、その実現のために"実世界です。

れば携帯性には問題は、チェックアウトしたいとし STLport.

ができないのはなぜでご利用のSTL?

とにかく、私はあなたがることを実装する単純な文字列クラスおよびリストをテンプレートです。そのように、そのまま使うことができ技術としてのおりに正常に保つのポインタをメモリ管理に限られます。場合は真似のSTL、よりよいものにする。

ま使用できませんのstl(後悔していると考えたかったのは、ゲーム産業をすることはできないのを文字列です。最も基本的な文字列のクラスがメモリを割り当て建設的課題を取り扱いに削除し、デストラクタ.その後も追加されている機能としています。完全に携帯し、非常に簡単に書けるよびユニットテストです。

とchar*を必要とする。お場合には、そのまま本当に必要なのはコピーする文字列です。お使いのstrndupます。しかできない書きのようなもの:

void RegisterName(const char* name)
{
  // loop to see if name already registered snipped
  if(notFound)
  {
    registerNames[lastIndex++] = stdndup(name, MAX_STRING_LENGTH);
  }
}

このコードと配列が大きます。

もちろん、最も適切に実施自身の文字列を配列にリスト...または納得してもらう上司のSTLな悪なくなるかも!?

編集:といったところから誤解を受ご質問です。ありませんconstnessこのコードを私が認識します。

になっていることから私の頭にのっとった形でなされるべきで約権

static int lastIndex = 0;
static char **registeredNames = new char*[numberOfNames];

void RegisterName(const * char const name)
{
    bool found = false;
    //loop to see if name already registered snipped
    for (int i = 0; i < lastIndex; i++)
    {
        if (strcmp(name, registeredNames[i] == 0))
        {
            found = true;
            break;
        }
    }

    if (!found)
    {
        registeredNames[lastIndex++] = name;
    }
}

内容を理解することができなぜ使用できませんSTL-ほとんど膨張コードでものすごく.しかし、実装のためのゲームプログラマーによるゲームプログラマー- RDESTL は図書館があります。

利用:

const char **registeredNames = new const char * [numberOfNames];

きを割り当て const * char const 要素の配列になります。

を出てすぐの好奇心なのに、なぜ"作ることを義務付けるもので、最軽C++を構築しま使用できる"?

すべての手法が有効なう場合、C#ではの魅力を再現で独自に作成クラスとインタフェースは現在と同じ抽象化、すなわち簡単なリンクリストラの手法を含む追加のサンプルコードによるその他の回答がこの比較的簡単です。

一つのいいところだと感じていC++はいなかったということではないか見て行動をしたい場合、他の言語でも実施するようなもので、通常再現します。

また、この文字列クラス。

http://www.robertnz.net/string.htm

で実質的にすべての特徴を STL形式の文字列が実施し真のクラスはテンプレート を使用しておりませんSTL.

これは明確な場合はお得です。ロールします。て同様のためのベクタークラスです。

  • い試験-第一プラグインです。
  • でシンプルです。

を避けるリファレンスカウンターに文字列バッファに入れば山の環境です。

だ約条約によっては仕事を得るために使用realloc.私はこのようなことはすべてリストの時に、このようなこと:

T** list = 0;
unsigned int length = 0;

T* AddItem(T Item)
{
 list = realloc(list, sizeof(T)*(length+1));
 if(!list) return 0;
 list[length] = new T(Item);
 ++length;
 return list[length];
}

void CleanupList()
{
 for(unsigned int i = 0; i < length; ++i)
 {
  delete item[i];
 }
 free(list)
}

ができ、例えばみreallocのリストのサイズダブルス機能を削除一覧からインデックスコンサルティングまたは平等では、テンプレートクラスの取り扱いリストなど...してくれてありがとうございますと私の書いた年齢の前に、必ず自分---ところが私の仕事ではなくコピー-貼り付けます。正直に言ではありますが、このなくなるだろうを上回るパフォーマンスをSTL同等ですが、同等の性能だけでトンの働いていたり、特に貧困層の実施STL.

督促C++ではなくオペレーターの更新/リサイズ交換realloc、非常に便利です。

あと、謝罪を行う場合のコードがエラーに乗り、引き出しから。

const正は定数の正確性を問わずご利用のSTLいます。私のために、registeredNames const char ** その課題 registeredNames[i]const char *)。

また、これが本当にしたいものしているか。このように、本プログラムを複製する文字列であろう。

さらにがんについて考えることになるで保存この一覧の操作を確認することができます設定方がよいでしょう。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top