/*
#include <iostream>
using namespace std;
int main()
{
cout << "Hello world!" << endl;
return 0;
}
*/
/*
#include<iostream>
#include<string>
using namespace std;
class Converter{
protected:
double ratio;
virtual double convert(double src)=0;
virtual string getSourceString()=0;
virtual string getDestString()=0;
public:
Converter(double ratio)
{
this->ratio = ratio;
}
void run()
{
double src;
cout << getSourceString() << "을" << getDestString() << "로 바꿉니다. ";
cout << getSourceString() << "을 입력하세요.";
cin >> src;
cout << "변환결과 : " << convert(src) << getDestString() << endl;
}
};
class WonToDollar : public Converter{
protected:
virtual double convert(double src)
{
return src/ratio;
}
virtual string getSourceString()
{
return "원";
}
virtual string getDestString()
{
return "달러";
}
public:
WonToDollar(double ratio): Converter(ratio) {}
};
int main()
{
WonToDollar wd(1010);
wd.run();
}
*/
/*
#include<iostream>
#include<string>
using namespace std;
class Converter{
protected:
double ratio;
virtual double convert(double src)=0;
virtual string getSourceString()=0;
virtual string getDestString()=0;
public:
Converter(double ratio)
{
this->ratio = ratio;
}
void run()
{
double src;
cout << getSourceString() << "을 " << getDestString() << "로 바꿉니다.";
cout << getSourceString() << "을 입력하세요>>";
cin >> src;
cout << "변환결과 : " << convert(src) << getDestString() << endl;
}
};
class KmToMile : public Converter{
protected:
virtual double convert(double src)
{
return src/ratio;
}
virtual string getSourceString()
{
return "Km";
}
virtual string getDestString()
{
return "Mile";
}
public:
KmToMile(double ratio) : Converter(ratio) {}
};
int main()
{
KmToMile toMile(1.609344);
toMile.run();
}
*/
/*
#include<iostream>
#include<string>
using namespace std;
class LoopAdder{
string name;
int x,y,sum;
void read();
void write();
protected:
LoopAdder(string name="")
{
this->name = name;
}
int getX() {return x;}
int getY() {return y;}
virtual int calculate()=0;
public:
void run();
};
void LoopAdder::read()
{
cout << name << ":" << endl;
cout << "처음 수에서 두번쨰 수까지 더합니다. 두 수를 입력하세요 >> ";
cin >> x >> y;
}
void LoopAdder::write()
{
cout << x << "에서 " << y << "까지의 합 = " << sum << " 입니다." << endl;
}
void LoopAdder::run()
{
read();
sum = calculate();
write();
}
class ForLoopAdder : public LoopAdder{
protected:
virtual int calculate()
{
int t=0;
for(int i=getX(); i<=getY(); i++)
{
t+=i;
}
return t;
}
public:
ForLoopAdder(string name) : LoopAdder(name) {}
};
int main()
{
ForLoopAdder forLoop("For Loop");
forLoop.run();
}
*/
/*
#include<iostream>
using namespace std;
class AbstractGate{
protected:
bool x,y;
public:
void set(bool x, bool y)
{
this->x = x;
this->y = y;
}
virtual bool operation()=0;
};
class ANDGate : public AbstractGate{
public:
virtual bool operation()
{
return (x&&y);
}
};
class ORGate : public AbstractGate{
public:
virtual bool operation()
{
return (x||y);
}
};
class XORGate : public AbstractGate{
public:
virtual bool operation()
{
if((x&&y)==1)
{
return 0;
}
else
{
return 1;
}
}
};
int main()
{
ANDGate andGate;
ORGate orGate;
XORGate xorGate;
andGate.set(true, false);
orGate.set(true, false);
xorGate.set(true, false);
cout.setf(ios::boolalpha);
cout << andGate.operation() << endl;
cout << orGate.operation() << endl;
cout << xorGate.operation() << endl;
}
/*
#include <iostream>
using namespace std;
int main() {
bool x, y;
x = true;
y = true;
cout << (x && y) << endl;
}
*/
/*
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
for(int i=0; i<v.size(); i++)
{
cout << v[i] << " ";
}
cout << endl;
v[0] = 10;
int m = v[2];
v.at(2) = 5;
for(int i=0; i<v.size(); i++)
{
cout << v[i] << " ";
}
cout << endl;
}
*/
#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
vector<string> sv;
string name;
cout << "이름을 5개 입력하라" << endl;
for(int i=0; i<5;i++)
{
cout << i+1 << ">>";
getline(cin,name);
sv.push_back(name);
}
name = sv.at(0);
for(int i=0;i<sv.size();i++)
{
if(name<sv[i])
{
name = sv[i];
}
}
cout << "사전에서 가장뒤 나오는 이름은 "<< name << endl;
}