如何使用 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(); 上的论点太少了。我不知道要输入什么参数,因为当我输入valresultint val, vector&lt;double&gt;result 时,它给了我很多错误。我只是不知道如何制作一个单独的函数来打印我在main以外的另一个函数中使用过的东西。

编辑:似乎我愚蠢地问了这个问题。我想知道例如我有一个函数可以计算两个名为int val (int a, int b) 的数字,并且该函数返回一个值“c”。所以现在我想创建另一个名为Print 的函数并使用另一个函数val 的返回值,这样我就可以打印它了。然后在主函数中我只调用Print() 函数。

【问题讨论】:

您编写的代码有什么问题? @indiv 问题是它说我在 Print() 上的参数太少;我不知道要输入什么参数,因为当我输入 val、result 或 int val、vectorresult 时,它给了我很多错误。我只是不知道如何制作一个单独的函数来打印我在除 main 之外的另一个函数中使用过的东西 @nos:我怀疑这真的是问题所在,因为发布的代码不起作用。 (打印 &amp;result 而不是 result[i] @LiGNUx 您的代码无效,无法编译。函数 Print 用两个参数声明,但在没有任何参数的情况下调用。目前还不清楚该函数应该输出什么。 对我来说,令人困惑的部分是您获取result 的地址,即cout &lt;&lt; &amp;result。为什么? 【参考方案1】:

您的***别课程的英文简短翻译是:

这是我要使用的库。 这就是我的意思是,如果我要求您使用 intdoublevector&lt;double&gt; 执行 Sqrs 这就是我的意思,如果我让你用intvector&lt;double&gt; 来做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++ 中打印向量?的主要内容,如果未能解决你的问题,请参考以下文章

使用 C++ void 函数操作向量数组

如何在 C++ 中打印对象向量?

c++ - 如何将void函数作为参数传递?

在 C++ 中使用向量的分段错误?

在 C++ 中查找向量的函数

从成员函数打印 vector<int> 元素时出现 C++ 段错误