在数组列表中搜索,编辑,删除

时间:2019-03-23 18:43:11

标签: c++ arraylist

我正在构建电话簿程序,遇到一些麻烦。

我有一个findContact函数,可以搜索整个列表,如果找到,则返回true。

bool AddressBook::findContact(std::string name)
{
    for (int i = 0; i < length; i++)
    {
        if (name == phoneBook[i]->name)
        {
            std::cout << phoneBook[i];
            return true; //if found, return true
        }
    }
    return false;
}

我想实现此功能以帮助我找到联系人,并在我的删除和编辑功能(例如

)中使用它
void AddressBook::deleteContact(std::string nameMatch) //need to implement find contact && not found if there is a space at end of name
{
    if (length == 0)
    {
        std::cout << "Phonebook is empty" << std::endl;
        return;
    }

    else
    {
        bool found = false;
        for (int i = 0; i < length; i++)
        {
            if (phoneBook[i]->name == nameMatch)
            {
                std::cout << phoneBook[i]->name << " deleted" << std::endl;
                //found item
                phoneBook[i] = phoneBook[length - 1];
                length--;
                found = true;
            }
        }
        if (found == false)
        {
            std::cout << "Person, " <<  nameMatch << " was not found" << std::endl;
        }
    }
    return;
}

 void AddressBook::editContact(std::string nameMatch)
{
    findContact(nameMatch);
}

很明显,我的editContact几乎没有启动,但是我想问更多有关deleteContact的问题。如您所见,我已经在函数本身中实现了搜索算法,而不是使用我编写的findContact代码。我的问题是,如果我决定使用findContact,我不知道如何实现在我的deleteContact中使用它获得的索引'i'。

我可以将其更改为bool(已完成),但是后来我不知道如何传递索引。

0 个答案:

没有答案