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;
}

通常我为每个需要它的类/结构等编写一个类似的函数。

我的问题是,有没有办法让这个片段准备好使用而不重写它?我在 VS 2010 中编程。

4

3 回答 3

1

您可以通过将其移动到 .h 文件并将其放在template<typename data_type>函数的前面来将其转换为模板。

您还可以切换到使用标准 C++ 功能,例如std::find算法

于 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 回答