Так что я могу изменить функцию, чья первоначальная цель состоит в том, что строка не может содержать более 6 элементов в своем массиве. Heres кодФункция, в которой дубликаты не допускаются? (C++)
template<class ItemType>
bool Bag<ItemType>::Add(const ItemType& new_entry)
{
bool has_room_to_add = item_count_ < max_items_;
if (has_room_to_add)
{
items_[item_count_] = new_entry;
item_count_++;
} // end if
return has_room_to_add;
} // end add
Это моя попытка.
template<class ItemType>
bool set<ItemType>::Add(const ItemType& new_entry)
{
string checker[] = { "Joker", "Ace", "Two", "Three",
"Four", "Five", "Six", "Seven",
"Eight", "Nine", "Ten", "Jack",
"Queen", "King" };
bool has_room_to_add = item_count_ < max_items_;
//compares the new entry to every item in the string and if there is a duplicate, the loop breaks and nothing is added.
if (has_room_to_add)
{
for (int i =0; i <=13; i++)
{
if (checker[i] == items_[item_count_])
break; //ends loop
else if (i==13)
{
items_[item_count_] = new_entry;
break; //ends loop
} // end if
} // end for
} //end if
// increases item_count_ if a new item is added to a set.
if (items_[item_count_] == new_entry)
item_count_++;
return has_room_to_add;
} // end add
Но не только это не мешает дубликатов, она нарушает первоначальную цель, не позволяя более чем 6 пунктов и выходит из строя, если есть больше. Может ли кто-нибудь сказать мне, что я сделал не так?
Используйте 'зЬй :: set' и ограничить количество записей до 6. Кроме того, это не очень хорошая идея назовите свой класс 'set'. – PaulMcKenzie
Можете ли вы показать остальную часть класса «Сумка» и установить? –