2014-11-16 44 views
0

將整數轉換爲vector,它在Custothe類中的語法是什麼?類中的STL向量訪問push

class Customer { 
vector <int> loyalID; 
} 

int main { 
Customer customer; 

vector<Customer>customers; 

customers.push_back(/*some integers to go into loyalID vector*/); 
} 
+0

'客戶''是客戶的矢量',而不是'int'。你可以將'Customer'推到它上面,而不是'int's。你可以將'int'推送到'customer.loyalID'上(或者如果它不是私有的話)。你又想做什麼? –

+0

@IgorTandetnik爲每個客戶存儲唯一ID(例如,忠誠卡客戶),當我訪問特定客戶時,顯示這些uniqueID。 – ProgLearner

回答

1

loyalIDCustomer的私人領域。無論是把它公開(不推薦),或添加一個公共方法:

class Customer { 
    vector <int> loyalID; 

    public: 
    void addLoyalId(int id) 
    { 
    loyalID.push_back(id); 
    } 
} 

訪問忠實IDS:

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" 
+0

它也可以工作,如果我想爲每個客戶存儲多個loyalID?如果是這樣,我怎麼可以訪問? – ProgLearner

1

要麼使矢量公衆(不推薦),或在課堂上寫一個公共成員函數:

void Customer::push_back(int i) 
{ 
    loyalID.push_back(i); 
} 

main一旦你在customers元素,你可以寫這樣的事情:

customers[0].push_back(10); 
+1

此時'客戶'是空的; '客戶[0]'展品未定義的行爲。 –

+0

我剛纔提供了應該如何使用成員函數的例子。作出澄清。 – rockoder