Вопрос, связанный с std::использование карты
Всем Привет,
Я проверяю использование std::map и хотел бы поделиться с вами, есть ли лучший подход для покрытия версии для ссылки на другую часть карты моего сегмента кода, которую я публикую ниже.
Не мог бы кто-нибудь объяснить мне, как лучше всего использовать такую карту ?
Заранее Вам большое спасибо.
<pre>#include <iostream> #include <cstdlib> #include <memory> #include <map> using namespace std; class InputScale { public: float offset; float factor; }; int main() { bool inputSelected = true; map<int, unique_ptr<InputScale>> inputScales; map<int, unique_ptr<InputScale>> tachoScales; // version linked to one single map. auto& inputScale = inputScales[1]; inputScale = make_unique<InputScale>(); inputScale->offset = 1.f; std::cout << inputScale->offset << std::endl; // version to link to different map map<int, unique_ptr<InputScale>>::mapped_type* scale{ nullptr }; if (inputSelected) scale = &inputScales[2]; else scale = &tachoScales[2]; *scale = make_unique<InputScale>(); (*scale)->offset = 2.f; std::cout << (*scale)->offset << std::endl; }
Что я уже пробовал:
В настоящее время я использую указатель, но хотел бы избавиться от него.
Shao Voon Wong
Вы можете удалить unique_ptr
map<int, inputscale> inputScales;