Я пишу функцию, чтобы определить, существует ли элемент в контейнере. Я не знаю, как выбрать имя функции между:
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
Зачем?
contains
самый популярный containsElement
может быть, и я никогда не видел doesContainElement
, Наверное, слишком долго.
Если вы пытаетесь подражать английскому, подумайте, что bool
функции обычно используются с if
, Что звучит лучше:
if( a.containsElement(b) )
if( a.doesContainElement(b) )
if( a.contains(b) )
? Я думаю 3, потом 1, потом 2, не так ли?
Других решений пока нет …