函数返回类型是 C++ 中的向量
Posted
技术标签:
【中文标题】函数返回类型是 C++ 中的向量【英文标题】:function return type is vector in c++ 【发布时间】:2011-08-25 19:43:40 【问题描述】:我想在我的代码中将向量作为函数的返回类型,例如,
class SocketTransportClient
void sendData(RMLInfoset *info)
vector<unsigned long>::iterator blockIterator;
vector<unsigned long> vectBlock=info->getRML(); // error : error C2440: 'initializing' : cannot convert from 'std::vector<_Ty>' to 'std::vector<_Ty>'
class RMLInfoset
vector<unsigned int> RMLInfoset::getRML()
return vectDataBlock;
但它显示错误'无法从'std::vector<_ty>'转换为'std::vector<_ty>'' 所以请任何人帮助我, 谢谢。
【问题讨论】:
【参考方案1】:嗯,部分问题在于您实际上从未在Myfun
中构建vector v
。
std::vector<int> Myfun()
std::vector<int> v;
return v;
编辑:
问题编辑后,还有一个小问题——你需要将向量声明为std::vector<int>
,而不仅仅是vector<int>
,如上。这是因为 vector 位于 std
命名空间中。
【讨论】:
在您最后一次编辑之后,我会发布一个答案,但 Greg Hewgill 已经足够好了。阅读他的回答。 :)【参考方案2】:您的函数被声明为返回vector<unsigned int>
,但您实际上试图将结果分配给vector<unsigned long>
。这些是不同的类型,并且不兼容分配。更改您的函数声明:
vector<unsigned long> RMLInfoset::getRML()
您还需要更改vectDataBlock
的类型。基本上,决定您要使用哪种矢量类型并保持一致。
【讨论】:
【参考方案3】:你有三个错误
1) 你没有使用#include <vector>
2) 应该是std::vector<int> v;
而不是vector<int> v;
3) 您没有发布所有代码。
【讨论】:
以上是关于函数返回类型是 C++ 中的向量的主要内容,如果未能解决你的问题,请参考以下文章