Я пытаюсь создать массив объектов типа teaStep, а также пытаюсь переупорядочить список в случайный список.
Функция makeSteps
предназначена для инициации переменных, сохранения их в массиве и вывода их.
Функция randomizeSteps
предназначена для создания массива целых и рандомизации их порядка перед выводом нового массива.
Просто интересно, если это правильный способ сделать это.
[Редактировать]
Используя вектор, теперь у меня есть это:
auto makeSteps()
{
auto all_steps = std::vector<teaStep>{};
all_steps.emplace_back("Pick your tea", 1);
all_steps.emplace_back("Boil water", 2);
all_steps.emplace_back("Get tea bag in mug or pot", 3);
all_steps.emplace_back("Pour boiled water over teabag", 4);
all_steps.emplace_back("Wait!", 5);
all_steps.emplace_back("Remove teabag", 6);
all_steps.emplace_back("Add milk and/ or sugar", 7);
all_steps.emplace_back("Mix, drink and enjoy", 8);
return all_steps;
}
auto randomizeSteps()
{
vector <int> ranstep;
for (int i = 1; i < 9; i++)
ranstep.push_back(i);
auto rng = std::default_random_engine{};
std::shuffle(std::begin(ranstep), std::end(ranstep), rng);
return ranstep;
}
Чтобы добавить к этому, как только это будет завершено, я должен быть в состоянии использовать объекты в векторах, однако, когда я пытаюсь это сделать, я получаю ошибку, пример ниже:
//should go through the object in vectors, and compare the field Order, to int a.
teaStep findStep(int a, std::vector<teaStep> vectors)
{
for (int b = 0; b < 8; b++)
{
teaStep test = vectors[b];
if (test.getOrder == a)
return test;
}
}
Ошибка, которую я получаю: «нет преобразования из int в int (...»