2013-03-29 1 views
0

У меня есть неупорядоченная карта, которая должна проверять наличие пера с учетом цвета и ширины пера. В настоящее время я пытаюсь выполнить поиск по строке. Если это уже на карте, это означает, что я уже создал Pen этого типа. Если он еще не на карте, я хочу создать новую ручку и установить цвет и вес и добавить это к unordered_map.Передача свойств объекта в виде строки

std::unordered_map<std::string, std::shared_ptr<Gdiplus::Pen>> mymap; 

Свойства пера, что я хочу есть цвет и ширина ... как вы можете видеть цвет приходит в формате (0,0,0), а ширина только число с плавающей точкой. Я думал о том, чтобы сделать строку как таковую: «(R, G, B); W», где R, G, B соответствуют цветам, а W соответствует ширине Pen, но это кажется слишком сложным.

Gdiplus::Pen pen(Color(0, 0, 0)); 
pen.getWidth(); 

мне было интересно, если есть простой способ передать эти свойства в виде одной строки или если есть лучший путь вокруг моей проблемы.

Моя строка должна видеть, существует ли перо. он проверяет цвет пера и ширину.

+0

То, о чем вы просите, не сразу очевидно для меня. Что вы подразумеваете под «передать эти свойства как одну строку?» –

+0

std :: unordered_map > mymap; что-то вроде этого, но это недопустимо –

ответ

0

Мое предположение заключается в том, что вы проверяете, существует ли перо или нет.

Вместо того, чтобы помещать вещи в строку, вставляйте их в структуру и используйте структуру в контейнере.

struct Pen_Properties 
{ 
    unsigned int r,g, b; 
    unsigned int width; 

    bool operator<(const Pen_Properties& p) 
    { 
    bool result = true; 
    if (r != p.r) 
    { 
     result = r < p.r; 
    } 
    else 
    { 
     if (g != p.g) 
     { 
      result = g < p.g; 
     } 
     else 
     { 
      // And so on. 
     } 
    } 
}; 
+0

std :: unordered_map > mymap; что-то вроде этого ... но это не разрешено –

 Смежные вопросы

  • Нет связанных вопросов^_^