我想一個向量迭代器轉換爲對象的指針下面的函數對象:的std ::向量:如何返回指針向量C++
std::vector<some_object> some_objects;
some_object* getsome(int index)
{
if(index < ledges.size() && index >= 0)
{
return &(*some_objects[index]);
}
return NULL;
}
但是編譯器會引發錯誤:「不匹配'operator *'。處理這個問題的正確方法是什麼?
什麼是'some_objects'?你可能要麼'return&some_objects [index]'或'return some_objects [index]',這取決於some_objects是什麼。 –
只需'返回&some_objects [index]',通常。 –
處理此問題的正確方法是重新考慮您的設計。允許向量複製/刪除其成員,因此指向其成員之一的指針不保證保持有效。我的猜測是你有一些接受指針作爲參數的代碼,並且你想將它應用到一個向量的內容中;在這種情況下,您應該考慮哪些代碼擁有各種對象,哪些開發人員擁有各種代碼。 – Beta