-
Notifications
You must be signed in to change notification settings - Fork 0
/
19.Ex1 ContactsSortedByNums.cpp
74 lines (63 loc) · 1.81 KB
/
19.Ex1 ContactsSortedByNums.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#include <set>
#include <iostream>
#include <string>
using namespace std;
template <typename T>
void DisplayContents(const T& container)
{
for (auto iElement = container.cbegin();
iElement != container.cend();
++iElement)
cout << *iElement << endl;
cout << endl;
}
struct ContactItem
{
string name;
string phoneNum;
string displayAs;
ContactItem(const string& nameInit, const string & phone)
{
name = nameInit;
phoneNum = phone;
displayAs = (name + ": " + phoneNum);
}
// used by set::find() given contact list item
bool operator == (const ContactItem& itemToCompare) const
{
return (itemToCompare.phoneNum == this->phoneNum);
}
// used to sort
bool operator < (const ContactItem& itemToCompare) const
{
return (this->phoneNum < itemToCompare.phoneNum);
}
// Used in DisplayContents via cout
operator const char*() const
{
return displayAs.c_str();
}
};
int main()
{
set<ContactItem> setContacts;
setContacts.insert(ContactItem("Jack Welsch", "+1 7889 879 879"));
setContacts.insert(ContactItem("Bill Gates", "+1 97 7897 8799 8"));
setContacts.insert(ContactItem("Angi Merkel", "+49 23456 5466"));
setContacts.insert(ContactItem("Vlad Putin", "+7 6645 4564 797"));
setContacts.insert(ContactItem("John Travolta", "+1 234 4564 789"));
setContacts.insert(ContactItem("Ben Affleck", "+1 745 641 314"));
DisplayContents(setContacts);
cout << "Enter a number you wish to search: ";
string input;
getline(cin, input);
auto contactFound = setContacts.find(ContactItem("", input));
if (contactFound != setContacts.end())
{
cout << "The number belongs to " << (*contactFound).name << endl;
DisplayContents(setContacts);
}
else
cout << "Contact not found" << endl;
return 0;
}