Какое более обычное имя функции находится между "ContainsElement" и "DoesContainElement"?

Я пишу функцию, чтобы определить, существует ли элемент в контейнере. Я не знаю, как выбрать имя функции между:

bool ContainerType::ContainsElement(const ElementType& elem);

а также

bool ContainerType::DoesContainElement(const ElementType& elem);

Рассмотрим следующие два сценария:

Версия 1:

ContainerType coll;
ElementType   elem;
...

if (coll.ContainsElement(elem))
{
    cout << elem << " exists." << endl;
}

Версия 2:

ContainerType coll;
ElementType   elem;
...

if (coll.DoesContainElement(elem))
{
    cout << elem << " exists." << endl;
}

Насколько я понимаю, я думаю, что версия 1 больше похожа на естественный английский. Тем не менее, я также обнаружил, что стиль версии 2 используется более широко.

Каково твое мнение?

Обновить:

FltIsOperationSynchronous
FltIsIoCanceled
FltIsVolumeWritable

Выше три названия функций взяты из документации Microsft. Если префикс "Flt" удален, это:

IsOperationSynchronous
IsIoCanceled
IsVolumeWritable

скорее, чем

OperationIsSynchronous
IoIsCanceled
VolumeIsWritable

Зачем?

1 ответ

contains самый популярный containsElement может быть, и я никогда не видел doesContainElement, Наверное, слишком долго.

Если вы пытаетесь подражать английскому, подумайте, что bool функции обычно используются с if, Что звучит лучше:

    if( a.containsElement(b) )

    if( a.doesContainElement(b) )

    if( a.contains(b) )

? Я думаю 3, затем 1, затем 2, не так ли?

Другие вопросы по тегам