من هر کار کردم موفق نشدم کد زیر رو اجرا کنم
struct S { int a; int b; }; int main() { map<S,int> m; S s; m[s]=2; }
جالبش اینه اگر map رو هر ۲ عضوشو int تعریف کنم درست کار می کنه چکار کنم که کد بالا اجرا بشه ؟
برای استفاده از 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]; }