Синтаксис будет:
tuple<string, float, int> snacks[3] = {
{"food 1", 1.2, 20},
{"food 2", 1.2, 20},
{"food 3", 1.2, 30}
};
Но человеку проще работать со структурой, поэтому у вас может быть отличное имя:
struct Snack
{
std::string name;
float price = 0;
int quantity = 0;
};
Snack snacks[3] = {
{"food 1", 1.2, 20},
{"food 2", 1.2, 20},
{"food 3", 1.2, 30}
};
Возможно, у вас все еще есть функция для преобразования вашей структурыstd::tuple
для материала для сравнения или для итерации по каждому члену:
auto as_tuple(const Snack& s) { return std::tie(s.name, s.price, s.quantity); }
auto as_tuple(Snack& s) { return std::tie(s.name, s.price, s.quantity); }
bool operator <(const Snack& lhs, const Snack& rhs) {
return as_tuple(lhs) < as_tuple(rhs);
}
Демо