SuperMiQi Ответов: 1

Вопрос, связанный с 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;

1 Ответов

Рейтинг:
0

SuperMiQi

Большое спасибо Мохибур,
Я проверил ссылку, которую вы мне отправили, но не смог найти ответа на свой вопрос.
Если бы у вас было больше информации об этом, это действительно было бы истощено.
Заранее спасибо.