Каков синтаксис, чтобы нажимать целое число в вектор, который находится внутри класса Custothe?
class Customer {
vector <int> loyalID;
}
int main {
Customer customer;
vector<Customer>customers;
customers.push_back(/*some integers to go into loyalID vector*/);
}
loyalID
- частное поле Customer
. Либо сделайте его общедоступным (не рекомендуется), либо добавьте общедоступный метод:
class Customer {
vector <int> loyalID;
public:
void addLoyalId(int id)
{
loyalID.push_back(id);
}
}
Доступ к лояльным идентификаторам:
class Customer {
vector <int> loyalID;
public:
void addLoyalId(int id)
{
loyalID.push_back(id);
}
std::vector<int>::iterator begin() const { return _loyalID.begin(); }
std::vector<int>::iterator end() const { return _loyalID.end(); }
}
Применение:
Customer c;
c.addLoyalId(1);
c.addLoyalId(2);
c.addLoyalId(3);
for (auto&& id : c)
{
std::cout << id << " ";
} // will print "1 2 3"
Либо сделать вектор общедоступным (что не рекомендуется), либо написать публичную функцию-член в классе:
void Customer::push_back(int i)
{
loyalID.push_back(i);
}
В main
когда у вас есть элементы в customers
вы можете написать что-то вроде этого:
customers[0].push_back(10);
customers
пусты на данный момент; customers[0]
демонстрируют неопределенное поведение.
customers
- это векторCustomer
, а неint
. Вы можете нажатьCustomer
на него, а не наint
. Вы можете вставитьint
наcustomer.loyalID
(или можете, если он не был закрытым). Что, опять же, ты хочешь сделать?