我正在开发一个项目,需要创建一个工人类(包含一些基本信息),并将它们全部放入向量中。
我已经找到了适合我的解决方案,但我很好奇是否有更好的方法来完成这个任务?因此,我想寻找不同的代码实现。
这是我的代码:
#include<iostream>
#include<vector>
#include<string>
#include<iterator>
class worker
{
private:
std::string _name;
int _age;
double _pay;
public:
worker() : _age{0}, _pay{0.0} {}
worker(std::istream& entry){ input(entry); }
std::istream& input(std::istream& x){ return x >> _name >> _age >> _pay ; }
const std::string& get_name() { return _name; }
const int& get_age(){ return _age; }
const double& get_pay(){ return _pay;}
};
class vecworkers
{
private:
std::vector<worker> vec_workers;
public:
void input(std::istream& x)
{
worker temp;
while(temp.worker::input(x))
vec_workers.push_back(temp);
}
void output(std::ostream& x)
{
worker temp;
for( std::vector<worker>::const_iterator it = vec_workers.begin() ; it != vec_workers.end() ; ++it )
{
temp = *it ;
std::cout << temp.get_name() << " "<< temp.get_age() << " " << temp.get_pay() << std::endl;
}
}
};
int main()
{
vecworkers w1;
w1.input(std::cin);
w1.output(std::cout);
return 0;
}
非常感谢您能提供的任何帮助。