我对 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;
}