C++中怎样用vector函数返回多Vector的值?
展开全部
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);
}
展开全部
在主函数中创立多个vector的对象,然后向函数传入他们的指针,在函数中对这几个vector的操作视为返回值,这样可以不使用返回值。
当然用类封装多个vector当然也行,看个人习惯了,这里面也牵扯到一定的效率问题。
当然用类封装多个vector当然也行,看个人习惯了,这里面也牵扯到一定的效率问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Vector<Vector<type> > vvi,应该能满足你的需求。
更多追问追答
追问
vector多维数组只能是一个数据型的比如int,而返回的3个数组是不同型的比如:int,float,char.
那怎么办?
追答
那就把这些数组作为函数的参数吧。使用传引用,避免复制和操作无效。不一定要作为函数的返回值。效果一样的。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
vector<type>::intertor it = vec.begin();
for(;it!= vec.end();++it)
*it;
逐一取出vector中的元素值,不知道你要的是不是这个东西
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 就行了!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询