В Страуструпе в 3-ем издании в главе 25 есть упражнение следующего содержания:"Напишите класс Stack, реализацию которого можно изменять во время выполнения программы. Подсказка:"Всякая проблема решается еще одним перенаправлением."" Объясните пожалуйста неопытному, зачем может понадобиться изменять реализацию во время выполнения? Например, зачем может потребоваться изменить std::stack< char, deque> на std::stack< char, std::vector< char >>? Советы по реализации тоже приветствуются