0

私は自分自身が次の関数を繰り返し書いていることに気づきました:

// This function will try to find the 'item' in 'array'.
// If successful, it will return 'true' and set the 'index' appropriately.
// Otherwise it will return false.
bool CanFindItem(data_type item, const data_type* array, int array_size, int& index) const
{
    bool found = false;
    index=0;
    while(!found && i < array_size)
    {
         if (array[index] == item)
              found = true;
         else index++;             
    }

    return found;
}

通常、私はクラス/構造体などごとに同様の関数を記述します。

私の質問は、このスニペットを書き直さずに使用できるようにする方法はありますか?私はVS2010でプログラミングしています。

4

3 に答える 3

1

.hファイルに移動しtemplate<typename data_type>、関数の先頭に配置することで、テンプレートに変換できます。

std::findアルゴリズムなどの標準のC++機能の使用に切り替えることもできます。

于 2012-04-04T15:04:11.283 に答える
0

std ::find ...を使用できます。リンクに配列を使用した例があります。

(std::find (array,array + array_size, item) != array + array_size);
于 2012-04-04T15:05:21.453 に答える
0

MFCでも、最新の(つまり、1995年以降の)c++およびSTL構造を使用できます。

于 2012-04-04T15:01:52.097 に答える