У вас тут трохи є невідповідність між завданням і засобами; невідповідність не в тому, що засоби недоречні, а в рівнях. Ну, це приблизно як "мені треба двоповерховий котедж збудувати, краще лінолеум чи ламінат класти"? У двоповерховому котеджі можна і треба і лінолеум, і ламінат, і бетон, і цеглу, і побілку, і ще багато чого використати.
Якщо вас влаштовує підбір матеріалу підлоги до планування будинку, то, залежно від того, як саме ви описуєте предметну область (чи може одне слово мати кілька відповідників), це буде std::map<std::string, std::string> чи std::map<std::string, std::vector<std::string>>. Можете також звернути увагу на std::multimap. У файл доведеться зберігати серіалізовані версії, швидше за все з векторів.
Хоча хороша архітектура тут радше вимагатиме зовнішнього сховища, якщо не можна використати базу даних - то файлу з індексом. Весь словник тримати в пам'яті не дуже зручно.