C++中怎样用vector函数返回多Vector的值?

 我来答
tattackor
2015-10-26 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:886万
展开全部

1、c++里面vector对象也可以像一般类型那样被复制的,不过很多时候会造成效率损失,函数返回vector是可以的。
2、例程:

#include <iostream>
#include <vector>
using namespace std;
typedef vector<int> vec;
vec foo()
{
    return vec(10, 1);
}
int main()
{
    vec v(foo());
    for(int i = 0; i < v.size(); ++i)
        cout << v[i] << ' ';
}
//c++0x以后会加入一个叫做 “右值引用” 的新概念,可以减少上面代码效率的损失:
vec& foo() //  c++ox以后这里直接返回foo里创建变量的引用,而不用担心vec会在出foo后被析构
{
    return vec(10, 1);
}
107395975
2012-10-04 · TA获得超过284个赞
知道小有建树答主
回答量:610
采纳率:0%
帮助的人:490万
展开全部
在主函数中创立多个vector的对象,然后向函数传入他们的指针,在函数中对这几个vector的操作视为返回值,这样可以不使用返回值。

当然用类封装多个vector当然也行,看个人习惯了,这里面也牵扯到一定的效率问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wanglixin1001
2012-10-04 · TA获得超过4174个赞
知道大有可为答主
回答量:1758
采纳率:80%
帮助的人:878万
展开全部
Vector<Vector<type> > vvi,应该能满足你的需求。
更多追问追答
追问
vector多维数组只能是一个数据型的比如int,而返回的3个数组是不同型的比如:int,float,char.
那怎么办?
追答
那就把这些数组作为函数的参数吧。使用传引用,避免复制和操作无效。不一定要作为函数的返回值。效果一样的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
d5378295
2012-10-04 · 超过13用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:38.4万
展开全部
vector<type>::intertor it = vec.begin();
for(;it!= vec.end();++it)
*it;

逐一取出vector中的元素值,不知道你要的是不是这个东西
追问
在子函数中生成3个Vector数组,想把这三个数组返回到主函数,在主函数中操作他们,请问怎么返回啊?
追答
用 map操作吧
#
#
map.insert(make_pair(key,value));
将value定为自己的vector 然后key为0,1,2,3就像数组那样
然后 如return返回就行了
这样做的话只能保证value 的类型相同,
如果你的3个value类型不同的话 在构造了一个map
然后它的value 类型为map 就行了!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式