Большая часть кода, который вы используете, - это старый стиль C с небольшим количеством кода STL на C ++. Я попытаюсь решить несколько вопросов по одному за раз.
struct
- это абстрактные данныеТип, используемый (в общем) для организации примитивных типов данных.Хотя единственное различие между struct
и class
заключается в том, что последний по умолчанию использует все члены как закрытые и в этом случае не работает, это хорошо, чтобы сократить эти вещи на проходе.
Во-вторыхмассив char
s громоздок, запутан и подвержен ошибкам.Вместо этого попробуйте std::string
.
Наконец, давайте создадим конструктор, принимающий два наших параметра.
Таким образом:
#include <string>
class Runner {
public:
std::string runnerTag;
uint32_t ts;
Runner(std::string, uint32_t);
};
Следующая вещь.Использование оператора индекса массива []
для доступа к std::vector
или его изменения опасно и лишает цели использования контейнера и всей замечательной функциональности, которая прилагается к нему.
Поскольку вы знаете циклы, давайтепопробуйте это:
for (int i = 0; i < 100; i++) {
std::string runnertg = "testTrackTag01";
uint32_t timeStamp = rand() % 100 + 1;
Runner Runner(runnertg, timeStamp);
runners.push_back(Runner);
}
В конце вашего кода, вне области действия основной функции, определите конструктор следующим образом:
Runner::Runner(std::string rt, uint32_t ts) {
runnerTag = rt;
ts = ts;
}
Это должно помочь вам начать.