mehran_gh
چهارشنبه 28 فروردین 1392, 22:26 عصر
چطور میشه اپراتور = رو به صورتی overload کرد که در سمت راست آرایه دریافت کنه ؟
به این صورت :
TMS A = {(“hadi”,10),(“ali”,5),(“saman”,20)}
حامد مصافی
پنج شنبه 29 فروردین 1392, 00:56 صبح
#include <iostream>
#include <initializer_list>
#include <vector>
using namespace std;
#define TWODARRAY initializer_list<pair<string, int>>
class TMS
{
vector<pair<string, int>> elements;
public:
TMS()
{
}
TMS(TWODARRAY arr)
{
readElements(arr);
}
TMS& operator = (TWODARRAY arr)
{
readElements(arr);
return *this;
}
void readElements(TWODARRAY arr)
{
TWODARRAY::iterator it;
for ( it=arr.begin(); it!=arr.end(); ++it){
cout << (*it).first << '\t' << (*it).second << endl;
pair<string, int> p = make_pair<string, int>(
(string)(*it).first,
(int)(*it).second
);
elements.push_back(p);
}
}
};
int main(void)
{
TMS A = {{"hadi",10},{"ali",5},{"saman",20}};
//or TMS B ({{"hadi",10},{"ali",5},{"saman",20}});
return 0;
}
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.