diff options
Diffstat (limited to 'graphs/cpp/address_book/address_book.hh')
| -rw-r--r-- | graphs/cpp/address_book/address_book.hh | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/graphs/cpp/address_book/address_book.hh b/graphs/cpp/address_book/address_book.hh new file mode 100644 index 0000000..9e59ac9 --- /dev/null +++ b/graphs/cpp/address_book/address_book.hh @@ -0,0 +1,25 @@ +// +// Created by martial.simon on 2/26/25. +// + +#pragma once +#include <map> +#include <string> +#include <vector> + +#include "contact_details.hh" + +class AddressBook +{ +public: + bool add(const std::string& full_name, const std::string& email, + const std::string& number); + std::vector<ContactDetails> find(const std::string& full_name); + std::size_t count(const std::string& full_name); + bool remove(const std::string& full_name, std::size_t index); + void remove_all(const std::string& full_name); + friend std::ostream& operator<<(std::ostream& os, const AddressBook& b); + +private: + std::multimap<std::string, ContactDetails> contact_map_; +}; |
