所以我正在用C++編寫一個程序,而且我的主要方法必須構造一個將矢量作爲參數的對象。C++在構造函數中通過引用傳遞
這是我的代碼:
int main() {
vector<Seller> *staff = new vector<Seller>;
for (int i = 0; i < 50; i++) {
staff->push_back(Seller(i));
}
BookStore store(*staff);
deque<Book> books;
books = store.getBooks();
}
所以,這些都是一些非常簡單的面向對象的概念,我認爲。
我的目標是:
首先,初始化賣方的空向量。賣方是一個具有構造函數的對象:
Seller(int i);
並且代表當然是賣方。
然後,我想用實際的賣家填寫向量。這些是在for循環中構造的。
然後,我想創建一個商店,它以在那裏工作的賣家作爲參數。
最後,我創建了一個名爲books的新雙端隊列,併爲它分配了Store類中書籍的值。圖書雙端隊列的初始化是在商店的構造函數中完成:
Store::Store(vector<Seller> &sellers) {
this->sellers = sellers;
this->books = deque<Book> (100, "Harry Potter");
}
所以這是代碼,我想知道如果我在傳遞參數給新構造部分犯了一個錯誤。
通過引用傳遞時我有點困惑,所以我要求在那部分幫助一下。我有兩個主要問題:
1)那裏有任何錯誤,考慮我想如何運行我的程序?還要考慮在主要方法的其餘部分(這裏不包括),我經常改變書籍deque的價值。 2)有沒有什麼方法可以替換deque中的元素而不必擦除和插入?
是否有內置函數替換?如果不是,下面的代碼將工作,如果我只想替換deque中的值?
例如,如果雙端隊列是這樣的:
3 4 5 2
它(迭代器)擁有價值2
然後我想雙端隊列成爲:
3 4 6 2
當做:
books.erase(it);
books.insert(it, 6);
感謝您的任何提示或幫助!