Я пытаюсь перебрать существующий массив с вектором.
В тесте класса используется разделяемый указатель с именем инвентаризации [50]. Я хотел бы выполнить итерацию в этом массиве с вектором, но при попытке получить сообщение об ошибке от компилятора: нет совпадения с оператором []. Как я могу получить доступ к элементам, которые находятся в инвентаре массива [50]? Извините, что задаю простые вопросы - я новичок в c ++.
template<typename T>
class Test{
template<typename m>
friend std::ostream& operator<<(std::ostream& out, const Test<m>& test);
protected:
std::shared_ptr<Object> inventory[50];
public:
int addInventory(std::shared_ptr<Object> object);
В. cpp файле .:
template<typename T>
int Test<T>::addInventory(std::shared_ptr<Object> object) {
int n = sizeof(inventory) /sizeof(int);
std::vector<std::shared_ptr<Object>> vec1(inventory, inventory + n);
for(std::vector<std::shared_ptr<Object>>::iterator i = vec1.begin(); i != vec1.end(); i++) {
if(!this->inventory[*i]) { //not working :(
this->inventory[*i] = object;
return *i;
}
}
}
С уважением,
Кейта