چه طوری میشه از struct داخل map استفاده کرد ؟ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

چه طوری میشه از struct داخل map استفاده کرد ؟

0 امتیاز

من هر کار کردم موفق نشدم کد زیر رو اجرا کنم

struct S
{
    int a;
    int b;
};

int main()
{
    map<S,int> m;
    S s;
    m[s]=2;
}

جالبش اینه اگر map رو هر ۲ عضوشو int تعریف کنم درست کار می کنه چکار کنم که کد بالا اجرا بشه ؟

سوال شده اسفند 5, 1392  بوسیله ی خمیده (امتیاز 96)   9 17 25

1 پاسخ

+2 امتیاز
 
بهترین پاسخ

برای استفاده از struct داخل map باید operator < رو هم overload کنین .

برای مثال :

 

#include <iostream>
#include <map>

struct A
{
    bool operator <(const A& a) const
    {
        return this->x < a.x ? true : false ;
    }
    int x;
};

int main()
{
    A a={2};
    A b={6};
    A c={7};

    std::map<A,std::string> MyMap;

    MyMap[a]="a";
    MyMap[b]="b";
    MyMap[c]="c";

    std::cout<<MyMap[c];
}

 

پاسخ داده شده اسفند 8, 1392 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
انتخاب شد اسفند 9, 1392 بوسیله ی مصطفی ساتکی
...