1.函数的返回值为string
例如
using namespace std;
string heh()
{
string hah="example";
return hah;
}
string& hh()
{
string hah="example";
return hah;
}
....
int main()
{
/*在函数结束后,函数内部的值都被清除了,故引用的值无法获取。
另外还会导致在debug模式下,结果是 example,在release模式下,
结果是null的问题。产生调试费时的bug。*/
string en=hh();// en的值为null;
string enen=heh();// enen的值为"example";
return 0;
}
2.定义返回值为vector的函数
using namespace std;
// 错误示例甲
std::vector<int>* lightnts(const pcl::PointCloud<pcl::PointXYZ>& cld_xyzi, const vector<int>& vec_x, float d)
// 正确示例乙
std::vector<int> *lightnts(const pcl::PointCloud<pcl::PointXYZI>& cld_xyzi, std::vector<int>& vec_sphere_coor_idx, float d);
// 正确示例丙
std::vector<int> *lightnts(const pcl::PointCloud<pcl::PointXYZI>& cld_xyzi, const std::vector<int>& vec_sphere_coor_idx, float d);
错误列表和输出信息分别如下图所示。
难道是因为不能直接写成const vector这样使用?