一个简单的电话簿程序将联系人推回到向量中 我正在编写一个C++的简单的电话簿程序,不使用类。 我有一个添加联系人的功能。我想知道为什么它不起作用!它不会将触点推回向量,如果您能帮助我,我将非常感激。包括我的代码的和平 vector<ContactInfo> add(vector<ContactInfo> contacts, ContactInfo ci){ if(!(isRepetativeContact(contacts, ci))) contacts.push_back(ci); return contacts; }

一个简单的电话簿程序将联系人推回到向量中 我正在编写一个C++的简单的电话簿程序,不使用类。 我有一个添加联系人的功能。我想知道为什么它不起作用!它不会将触点推回向量,如果您能帮助我,我将非常感激。包括我的代码的和平 vector<ContactInfo> add(vector<ContactInfo> contacts, ContactInfo ci){ if(!(isRepetativeContact(contacts, ci))) contacts.push_back(ci); return contacts; },c++,vector,push-back,C++,Vector,Push Back,看起来您正在使用std::vector重新创建std::set。 尝试使用std::set std::pair<iterator,bool> insert( const value_type& value ); std::成对插入(常量值\u类型和值); insert的返回值是一对。bool表示该值是否已在集合中;(插入成功)。迭代器指向std::集合中的元素(如果该值已经在集合中,则它指向现有值) 一组中不能有重复项。我想知道为什么不起作用!-请描述它是如何工作的。如果

看起来您正在使用std::vector重新创建std::set。 尝试使用std::set

std::pair<iterator,bool> insert( const value_type& value );
std::成对插入(常量值\u类型和值);
insert的返回值是一对。bool表示该值是否已在集合中;(插入成功)。迭代器指向std::集合中的元素(如果该值已经在集合中,则它指向现有值)


一组中不能有重复项。

我想知道为什么不起作用!-请描述它是如何工作的。如果不是一个类,什么是
ContactInfo
?您是否为它实现了
操作符==
?删除
的末尾显示code>@DeanSeo抱歉,我的意思是它不会将联系人推回向量。我编辑了它。@Quentin它是一个结构,是的,我为它重载了这个运算符==。
    bool operator==(const ContactInfo& ci) const {
    return (firstName == ci.firstName && lastName == ci.lastName &&
     phoneNumber == ci.phoneNumber && emailAddress == ci.emailAddress &&
     id == ci.id );
}
std::pair<iterator,bool> insert( const value_type& value );