当前位置: 首页 > 知识库问答 >
问题:

如何将向量传递给以自定义对象为参数的重载输出流?

曹高轩
2023-03-14
 class example{
 int n;
 vector <double> vec;

 example(const vector <double> &vec) : vec(vec){}

 void set_data(const vector<double> &v){vec = v;}
 const vector<double> &get_data() const {return vec;}

 };

ostream &operator<< (ostream &output, const sample &s){
  return output << "< " << s.get_data().size()  << " : " << //element1 << element2 << //elementN;
}

我正在尝试为创建向量对象的类创建自定义输出流。输出应该返回大小(即向量中的元素数量)和向量中的元素。

现在的问题是,当我创建一个新的示例类对象时,它只创建一个包含一个元素的向量。

例如,当我创建一个对象时,比如'sample s(vector vec);它可以用一个项目创建一个对象,这是可以理解的。我尝试过向构造函数添加更多参数,比如“const vector”

共有3个答案

东方辉
2023-03-14

您的错误与矢量、流或访问控制完全无关。您只是使用了无效的语法来声明vec成员和构造函数参数。

编辑以回答更新的问题:

现在的问题是,当我创建一个新的示例类对象时,它只创建一个包含一个元素的向量。

这和你原来的问题不一样。你应该提出一个新问题。

例如,当我创建一个对象时,比如'sample s(vector vec);它可以用一个项目创建一个对象,这是可以理解的。

不,这声明了一个名为s的函数,它接受一个名为vecvector参数,并返回一个sample。你需要认真掌握语言的基本语法。

孟英锐
2023-03-14

这一行:

vector<double> vec(n);

不能作为变量声明出现在类主体中。它应该像这样初始化:

vector<double> vec = vector<double>(n); // copy-initialization

或者使用成员初始值设定项列表:

example(vector<double> vec const&) : vec(vec) { }

这将从另一个实例复制构造它。

尉迟国发
2023-03-14

为了让答案具体化,你需要

 class example{
 // ...
 example(const vector<double> &vec_, int n_)
   : vec(vec_), n(n_)
 { }

 // ... 
};

这会将vec初始化为参数的副本,应该通过引用传递参数,以避免多余的副本。

 类似资料:
  • 我正在使用GraphQL查询一个对象,该对象将由大约15个不同的REST调用组成。这是我的根查询,我在其中传入查询的ID。这对于正确解析的主要student对象非常有效。但是,我需要弄清楚如何将ID传递给地址解析程序。我尝试将args添加到address对象,但出现了一个错误,表明args没有从Student对象传递下来。所以我的问题是:如何将客户机查询中的参数传递给GraphQL服务器中的子对象

  • 问题内容: 我试图使用PendingIntent将自定义的序列化对象从我的IntentService传递到BroadcastReceiver。 这是我的自定义对象: 行.java 这是我的IntentService MyIntentService.java MainActivity.java 这是我的BroadcastReceiver: AlarmReceiver.java 最烦人的部分是该代码以

  • 使用,并希望将常量/参数传递给自定义映射器 我的目的地具有 Map 类型的字段

  • 我目前正在使用环境变量向负载测试传递自定义参数。例如,我的测试类如下所示: 然后,我将使用以下工具运行测试: 有没有更多的方式可以将自定义参数传递给命令行应用程序?

  • 问题内容: 在SQL Server 2014中,我试图创建一个动态的WHERE子句。 我已将查询构建为字符串,但是当我尝试使用sp_executesql执行查询时,出现以下错误:提示 13您必须声明标量变量“ @desde”。 我不知道如何使sp_executesql识别输入参数。 问题答案: 代替 使用 您必须定义在动态查询中使用的参数,例如 请参考sp_executesql 否则,您可以将动态

  • 问题内容: 这在Django 1.9中用form_kwargs修复。 我有一个看起来像这样的Django表单: 我称这种形式的东西是这样的: 登录用户在哪里。这按预期工作。 我的问题是,我现在想将此单一表单转换为表单集。我不知道的是在创建表单集时如何将会员信息传递给各个表单。根据文档来制作一个表单集,我需要做这样的事情: 然后我需要这样创建它: 现在如何以这种方式将affiliate = requ