Если вы пойдете «по столбцам», то можете добавлять поля по своему усмотрению.
исходная структура старым способом:
struct Person {
string name;
int age;
};
vector<Person> People; // single file for all fields
добавление поля старым способом:
struct Person {
string name;
int age;
string address; // now must rewrite files on disk
};
новый и улучшенный способ:
namespace People {
vector<string> name; // first file
vector<int> age; // second file
}
добавление к новому пути:
namespace People {
vector<string> name;
vector<int> age;
vector<string> address; // add a third file and leave other two alone
}
Суть в том, что каждое поле является отдельным файлом.Дополнительным преимуществом является то, что пользователю нужно только читать / писать нужные ему поля, поэтому управление версиями становится проще.