【发布时间】:2015-06-17 17:05:18
【问题描述】:
我正在使用 Qt 在 C++ 中开发类似于linkedin 的软件。 当我尝试将用户保存到数据库时遇到问题,特别是当我尝试保存他的联系人时。
调试器说错的函数如下
QString network::getAllContacts(const vector<user*>& d) const{
QString str="";
for(vector<user*>::const_iterator it=friends.begin();it!=friends.end(); ++it){
for(vector<user*>::const_iterator it2=d.begin(); it2!=d.end(); ++it2){
if(*it==*it2){
if(str.size()!=0)
str=str+","+QString::fromStdString((*it)->getLogin());
else
str=QString::fromStdString((*it)->getLogin());
}
}
}
return str;
}
它给了我一个分段错误,并显示了 stl vector.h 的行,上面写着
{ return const_iterator(this->_M_impl._M_finish); }
【问题讨论】:
-
认真思考为什么需要指针向量。它不仅增加了内存管理工作量,而且很少有这是正确的选择。还可以考虑将字符串构建为 std::string 并在最后转换为 QString。
标签: c++ qt vector segmentation-fault