我对C++早有新意,并且已经阅读了一些关于在向量中存储指向对象的指针或对象本身的主题。 我决定将对象存储在向量中,因为我不会在运行时push_back许多对象,只会创建一次向量并像这样离开。指向元素的向量
我现在的问题是,我有另一个对象获取一个向量作为参数,并搜索传递的向量中的某个对象。如果它找到这个对象,它会存储一个指向它的指针,如果没有,则该变量被设置为NULL
。
尽管我没有push_back
任何项目,指针似乎指向其他功能中的错误位置。 在向量中搜索元素的对象具有应该返回指针的公共函数。如果我在每个函数调用中搜索对象都会非常慢,所以这不应该是一个选项。 有没有其他的解决方案,或者我必须切换到指针向量?
一些代码片断:
构造的对象的其搜索矢量:
MySearch::MySearch(QVector<Obj> objVector)
:objVector(objVector) {
found = NULL
foreach(Obj o, this->objVector) {
if(..found..) {
found = &o;
break;
}
}
}
消气功能:
Obj* MySearch::getObject() {
return found;
}
你的代码似乎试图记住你正在寻找的东西,而不是向量中的任何东西。你真的*试图做什么? – doctorlove
这是什么语言? – juanchopanza
@doctorlove你是什么意思?是的,我想记住指向找到的对象的指针。 – schlimpf