如何使用 void() 函数在 C++ 中打印向量?
Posted
技术标签:
【中文标题】如何使用 void() 函数在 C++ 中打印向量?【英文标题】:How to use a void() function to print a vector in c++? 【发布时间】:2015-03-01 18:54:20 【问题描述】:我有一个函数可以计算从 1 到 100 的数字的平方。我想使用另一个函数来打印结果。我想知道如何使这样的函数不仅适用于向量,而且适用于任何类型。
这是我目前所拥有的:
#include <iostream>
#include <iomanip>
#include <cmath>
#include <vector>
using namespace std;
vector<double> Sqrs(int val, double sqr, vector<double> result)
for(val = 1;val < 100;val++)
sqr = sqrt(val);
result.push_back(sqr);
return result;
void Print(int val, vector<double> result)
for(unsigned int i = 0;i < result.size();i++)
cout << val << setw(10);
cout << &result << endl;
int main()
Print();
return 0;
问题是它说我在Print();
上的论点太少了。我不知道要输入什么参数,因为当我输入val
、result
或int val, vector<double>result
时,它给了我很多错误。我只是不知道如何制作一个单独的函数来打印我在main
以外的另一个函数中使用过的东西。
编辑:似乎我愚蠢地问了这个问题。我想知道例如我有一个函数可以计算两个名为int val (int a, int b)
的数字,并且该函数返回一个值“c”。所以现在我想创建另一个名为Print
的函数并使用另一个函数val
的返回值,这样我就可以打印它了。然后在主函数中我只调用Print()
函数。
【问题讨论】:
您编写的代码有什么问题? @indiv 问题是它说我在 Print() 上的参数太少;我不知道要输入什么参数,因为当我输入 val、result 或 int val、vector&result
而不是 result[i]
)
@LiGNUx 您的代码无效,无法编译。函数 Print 用两个参数声明,但在没有任何参数的情况下调用。目前还不清楚该函数应该输出什么。
对我来说,令人困惑的部分是您获取result
的地址,即cout << &result
。为什么?
【参考方案1】:
您的***别课程的英文简短翻译是:
这是我要使用的库。 这就是我的意思是,如果我要求您使用int
、double
和 vector<double>
执行 Sqrs
这就是我的意思,如果我让你用int
和vector<double>
来做Print
最后你实际上告诉程序要做的事情是
Print
一无所有
输出0
如您所见,此代码似乎与您描述的任何内容都不相似。在您担心尝试编写非常通用的代码之前,您应该先尝试正确处理特殊情况。
【讨论】:
【参考方案2】:#include <iostream>
#include <cmath>
#include <iomanip>
#include <vector>
using namespace std;
vector<double> myFunc(int x, vector<double> &vec)
double rez = 0.0;
for(int i = 0;i < 100;i++)
rez = sqrt(x);
vec.push_back(rez);
x++;
return vec;
void Print(vector<double> &vec)
for(int i = 0;i != vec.size();i++)
cout << vec[i] << endl;
int main()
vector<double> vec1;
myFunc(1, vec1);
Print(vec1);
return 0;
这就是我想做的。
【讨论】:
以上是关于如何使用 void() 函数在 C++ 中打印向量?的主要内容,如果未能解决你的问题,请参考以下文章