C++遍历结构体的字段,请大家指点我的方法!
C++本身不支持遍历结构体的字段,我举个例子:
ShowPersons()用来打印所有人的各项信息。问题在于,如果其他人只能看到Person的定义,然后要对Person的字段进行遍历,岂不是又要写个遍历函数?如果Persons有上百个字段,如果打印格式经常变化,这样岂不是很容易出错?
struct Person{ string name; int age; Person(string name_, int age_) { name = name_; age = age_; }};void MakePersons(vector<Person>& persons){ persons.clear(); persons.push_back(Person("Jack", 10)); persons.push_back(Person("Tom", 30)); persons.push_back(Person("Lucy", 15));}void ShowPersons(vector<Person>& persons){ for (size_t i = 0; i < persons.size(); i++) { cout<<"name: "<<persons[i].name.c_str()<<"\t"; cout<<"age: "<<persons[i].age<<endl; }}