Я получил простой CSV файл:CSV файл объекта C++
name,surname
Joe,Moe
Bob,Rob
В JavaScript я бы просто создать массив объектов следующим образом:
// let's assume the csv file is valid and it was already processed
var csv = ["name", "surname", "Joe", "Moe", "Bob", "Rob"],
ret = [],
i, ilen, j, o,
cols = 2;
for (i = cols, ilen = csv.length; i < ilen; i += cols) {
o = {};
for (j = 0; j < cols; j += 1) {
o[csv[j]] = csv[i + j];
}
ret.push(o);
}
console.log(ret); // [{name: "Joe", surname: "Moe"}, {name: "Bob", surname: "Rob"}]
Я d хотел бы создать вектор, заполненный объектами (экземплярами класса). Класс должен быть создан во время выполнения, файл csv может измениться.
Не могли бы вы посоветовать, как достичь этого в C++?
Это не файл CSV, элементы разделены пробелами. Тем не менее, общий подход должен состоять в том, чтобы читать файл по строкам, разделяя их на столбцы, разделенные пробелами. См. [Getline] (http://www.cplusplus.com/reference/string/string/getline/), чтобы получить строку из файла и вопрос [Разделение строки по пробелам в C++] (http: // stackoverflow. com/questions/2275135/splitting-a-string-by-whitespace-in-c) для того, как разбить это на элементы. –
Я знаю, как разбить строку, не могли бы вы дать мне знать, как я могу создать класс динамически во время работы программы? Предположим, что вход csv может измениться. –
Посмотрите оператор 'new', чтобы динамически выделять объекты *, что означает во время выполнения в области динамической памяти. –