永发信息网

关于vector<vector<string>>作为返回类型的问题,

答案:1  悬赏:20  手机版
解决时间 2021-02-08 03:43
  • 提问者网友:聂風
  • 2021-02-07 17:49
#include "stdafx.h"
#include "vector"
#include "string"
#include "iostream"
using namespace std;
class A
{
public:
string name;
string word;
};

class B
{
public:
vector<vector<A>> send(vector<vector<A>> x); //测试如何把vector对象当左值
};

vector<vector<A>> send(vector<vector<A>> x)
{
return x;
}

int main(int argc, char* argv[])
{
A a;
B b;
vector<A> m;
vector<vector<A>> n,d;
a.name = "tracy";
a.word = "just brillance";
m.push_back(a);
m.clear();
n.push_back(m);
d = b.send(n); //???如何用一个vector的vector对象n接收这个函数的返回值
cout<<d[0][0].name<<endl<<d[0][0].word<<endl; //??这样不行么
return 0;
}
最佳答案
  • 五星知识达人网友:春色三分
  • 2021-02-07 18:56
可以的,完全没有问题。你的程序主要的问题是:
1.如果模版内部还有模版,则两个>>和<<一定要分开,否则会当成是移位运算符而出错。这是一个很容易犯的错误。
所有类似vector<vector<A>> n,d;的语句统一改为vector< vector<A> > n,d;
2.你在类外定义send函数的时候没有加作用域标识符。
3.m.clear();你把m清空了,一个空模版是不能输入的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯