Для ввода используем std::cin >> first >> second и заодно проверяем успешен ли ввод. Если да, то сохраняем пару в dict. На этапе компиляции auto p превращается во что-то вроде std::pair<std::string, std::string>, откуда мы получаем доступ через члены first и second (для первого и второго элемента соответственно)