[英]c++ How to properly return an object from a function
我正在编写一个程序来处理带有集合的不同操作,并且给出的某些函数应该返回对象。 SoS
是在头文件中声明的对象,并且具有数据成员m_vos
(字符串的向量)和布尔值。 在函数中,我正在创建新对象和新集合。 如何将套装与物件绑在一起?
这就是我所拥有的:
SoS SoS::makeIntersection(const SoS& B) const {
SoS intersection;
vector<string> set1;
vector<string> set2;
vector<string> set3;
set1 = this->m_vos;
set2 = B.m_vos;
//int totalElements;
//totalElements = (set1.size() + set2.size());
sort(set1.begin(), set1.end());
sort(set2.begin(), set2.end());
set_intersection(set1.begin(),set1.end(),set2.begin(),set2.end(),back_inserter(set3));
return intersection;
}
要从函数返回对象,只需将函数定义为返回对象。 您需要在函数内部定义(或传递)一个对象,根据需要对其进行修改,然后将其返回。 与您的问题相关的示例如下所示。
Object myFunction() {
// object to return
Object myObject;
// set of strings
std::set<string> mySet;
// convert to vector
std::vector<string> myVector(mySet.begin(), mySet.end());
// assign to object (the actual setting will be different)
myObject.setVector(myVector);
// return object
return myObject;
}
完全set3
并将交集直接构建到对象中:
set_intersection(set1.begin(),
set1.end(),
set2.begin(),
set2.end(),
back_inserter(intersection.m_vos));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.